KR20010040685A - 데이터베이스 내의 어플리케이션으로부터 가시적 형태의정보를 저장 및 복원하기 위한 정보 저장 및 복원시스템 - Google Patents

데이터베이스 내의 어플리케이션으로부터 가시적 형태의정보를 저장 및 복원하기 위한 정보 저장 및 복원시스템 Download PDF

Info

Publication number
KR20010040685A
KR20010040685A KR1020007008562A KR20007008562A KR20010040685A KR 20010040685 A KR20010040685 A KR 20010040685A KR 1020007008562 A KR1020007008562 A KR 1020007008562A KR 20007008562 A KR20007008562 A KR 20007008562A KR 20010040685 A KR20010040685 A KR 20010040685A
Authority
KR
South Korea
Prior art keywords
data
database
application
visible form
visible
Prior art date
Application number
KR1020007008562A
Other languages
English (en)
Other versions
KR100670083B1 (ko
Inventor
카레이 에드윈 그레고리
칼 도스 산토스
에드워드 로렌스 베이아테스
밀린드 엠. 카울가드
피츠호즈 고든 3세 부시
아지트 내그럴
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
Family has litigation
First worldwide family litigation filed litigation Critical https://patents.darts-ip.com/?family=26754797&utm_source=google_patent&utm_medium=platform_link&utm_campaign=public_patent_search&patent=KR20010040685(A) "Global patent litigation dataset” by Darts-ip is licensed under a Creative Commons Attribution 4.0 International License.
Application filed by 누제니시스 테크놀로지즈 코포레이션 filed Critical 누제니시스 테크놀로지즈 코포레이션
Publication of KR20010040685A publication Critical patent/KR20010040685A/ko
Application granted granted Critical
Publication of KR100670083B1 publication Critical patent/KR100670083B1/ko

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/451Execution arrangements for user interfaces
    • 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/25Integrating or interfacing systems involving database management systems
    • G06F16/258Data format conversion from or to a database
    • 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/912Applications of a database
    • Y10S707/913Multimedia
    • Y10S707/915Image
    • 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/912Applications of a database
    • Y10S707/917Text
    • 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
    • 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/99933Query processing, i.e. searching
    • 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/99933Query processing, i.e. searching
    • Y10S707/99936Pattern matching 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/99931Database or file accessing
    • Y10S707/99937Sorting
    • 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
    • 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/99944Object-oriented database structure
    • Y10S707/99945Object-oriented database structure processing
    • 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/99948Application of database or data structure, e.g. distributed, multimedia, or image

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Databases & Information Systems (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Human Computer Interaction (AREA)
  • Data Mining & Analysis (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Processing Or Creating Images (AREA)
  • Document Processing Apparatus (AREA)
  • Telephonic Communication Services (AREA)

Abstract

컴퓨터 프로그램으로부터의 가시적 형태의 데이터는 데이터베이스에 복원 및 저장된다. 가시적 형태의 데이터는 예를 들어, 컴퓨터 프로그램에 의한 프린트 동작에 응답하여 또는 잘라내기 및 붙여넣기와 같은 다른 순서적인 동작에 의해서 복원될 수 있다. 가시적 형태의 데이터는 스케일링을 허용하는 벡터 이미지로서 저장될 수 있다. 가시적 형태의 데이터는 데이터베이스의 검색을 용이하게 하기 위해서 데이터베이스내의 다른 식별 정보 또는 태그와 함께 저장될 수 있다. 일 실시예에서는, 데이터베이스 내의 데이터의 인코딩 및 디코딩을 수행함으로서 데이터베이스 액세스를 제공하기 위한 서비스 레이어 어플리케이션이 제공된다. 서비스 레이어는 많은 어플리케이션이 데이터베이스에 대한 액세스를 하도록 허용하는 어플리케이션 프로그래밍 인터페이스를 갖을 수 있다. 데이터베이스로부터 가시적 형태의 데이터를 액세스하고 이 데이터를 다른 컴퓨터 프로그램에 제공하기 위한 다른 어플리케이션이 제공된다. 이러한 어플리케이션은 사용자가 다른 컴퓨터 프로그램을 사용하여 데이터베이스 내의 데이터로부터 복잡한 문서를 생성하는 것을 허용한다.

Description

데이터베이스 내의 어플리케이션으로부터 가시적 형태의 정보를 저장 및 복원하기 위한 정보 저장 및 복원 시스템{INFORMATION STORAGE AND RETRIEVAL SYSTEM FOR STORING AND RETRIEVING THE VISUAL FORM OF INFORMATION FROM AN APPLICATION IN A DATABASE}
많은 컴퓨터 프로그램들이 있을 때, 사용자의 시각에서 가장 유용한 데이터 형태로는 가시적 형태(visual form) 예를 들어, 컴퓨터 디스플레이 상에 무엇이 디스플레이되는지 또는 무엇이 프린트되는지를 들 수 있다. 그러나, 이러한 데이터 형태는 데이터가 프린트되고 프린트된 형태가 전기적으로 스캐닝될 때까지는 영구적 저장으로 캡처되지 않는다. 특히, 컴퓨터 프로그램에 의해 사용된 파일 포맷은 종종 여러 이유 때문에 가시적 형태로 데이터를 유지하지 않는다. 가시적 형태의 데이터는 일반적으로 보다 많은 정보가 표현될 것을 요구하며, 보다 적은 정보가 표현될 것을 요구하는 가공전 데이터로부터 재구성될 수 있다. 그래서, 일반적으로 가시적 형태의 데이터를 저장할 필요성이 불필요하다고 생각되었다.
컴퓨터 프로그램에 의해 생성된 가시적 형태의 데이터의 부분은 예를 들어, 환경 데이터(날짜 및 시간과 같은 환경 데이터) 또는 처리되어질 데이터를 선택하는 사용자로부터 생성되고, 파일 포맷으로는 복구될 수 없으며, 가시적 형태의 데이터 부분은 컴퓨터 프로그램의 데이터 구조로부터만 복구될 수 있다. 어떤 데이터 구조들은 가시적 형태의 데이터를 나타내지만, 종종 프린트하는 것 이외에는 가시적 형태의 데이터를 유지하는 메커니즘이 없다. 어떤 운영 시스템은 "잘라내기-및 -붙여넣기" 동작을 사용하여서, 디스플레이될 데이터가 하나의 컴퓨터 프로그램에서 다른 컴퓨터 프로그램으로 복사되도록 하지만, 이 동작은 일반적으로 동일한 머신상에 동작되어질 다른 컴퓨터 프로그램을 요구한다. 어떤 컴퓨터는 또한, 사용자에게 이용가능한 이들 동작을 갖지 않는다. 어떤 컴퓨터 프로그램에서는 디스플레이된 데이터가 아닌 프린트된 형태의 데이터가 가장 유용하며, 이 동작은 프린트된 데이터로의 액세스를 제공하지 않는다.
컴퓨터 프로그램으로부터의 가시적 형태의 데이터가 저장되었지만, 컴퓨터 프로그램의 새 버젼이 사용될 때 또는 컴퓨터 프로그램이 더이상 사용할 수 없을 때, 그 데이터로의 액세스가 방해된다. 또한, 데이터가 독점적인 포맷으로 저장된다면, 다른 컴퓨터 프로그램은 그 데이터에 액세스할 수 없을 것이다.
컴퓨터 프로그램으로부터 가시적 형태의 데이터로 이러한 액세스를 하지 못하는 것은, 이러한 형태의 데이터가 데이터의 여러 소스로부터 복합 자료를 생성하도록 희망될 때, 특히 지리적으로 분산된 여러 다른 컴퓨터 프로그램을 갖는 여러 다른 사용자에 의해 시간의 주기로 데이터가 생성되고, 사용되고 그리고 공유될 때, 여러 문제가 발생하게 된다. 특정 예로서, 제약 제조업에서는 상당한 시간의 주기 동안 지리적으로 분산된 실험실의 많은 실험 장비로부터 자료가 획득될 수 있으며, 그 후, 예를 들어 정격 승인에 대한 리포트를 제공하기 위해 조합될 수 있다. 이들 장비로부터 전자 가시적 형태의 데이터를 중앙에서 액세스하지 못한다면, 정격 승인에는 상당한 비용이 추가된다.
이러한 문서에 공유된 전자적 액세스를 제공하는 전자적 스캐닝 프린트된 문서는 여러 단점들을 갖는다. 첫째, 스캐닝 작업은 개인의 시간과 노력을 포함하여 상당한 자원을 소모한다. 둘째, 자료의 생성 및 다른 쪽에서의 자료의 이용 가능성 사이에는 상당한 시간의 지연이 있을 것이다. 셋째, 스캐닝에 의해 형성된 비트 맵트 이미지는 스케일링, 회전, 및 변형이 있을 때, 화상이 일그러지게 된다. 넷째, 스캐닝된 자료에서 텍스트를 탐색할 수 있도록 하기 위해, 스캐닝된 자료는 광학 기호 인식(OCR) 소프트웨어에 의해 처리되어져야만 한다.
데이터 저장과 만날 수 있는 다른 문제로는 데이터가 저장된 시간과 데이터가 사용된 시간 간에 의도적이거나 또는 우발적이거나 데이터 보전이 손상될 수 있다는 점이다. 만일 데이터가 정격 또는 관리상의 승인을 얻는 데 사용된다면, 데이터 보전에 대한 어떠한 보증이 요구될 수 있다.
컴퓨터 프로그램은 일반적으로 다양한 포맷의 데이터를 유지한다. 일반적으로 가공전 데이터(raw data)가 영구적으로 저장되는 각 컴퓨터 프로그램에는 독특하고 통상적으로 독점성이 있는 하나의 포맷이 존재한다. 이 포맷은 일반적으로, 실제로 저장된 정보량을 줄이도록, 어떤 경우에는 제3 부분이 데이터를 액세스하는 능력을 제한하도록 설계된다. 이러한 포맷에서의 데이터는 일반적으로 컴퓨터 프로그램의 "세이브(save)" 기능으로 생성된다. 세이브 기능은 가공전 데이터를 포맷하고, "파일"이라 불리는 다른 포맷에 포맷된 가공전 데이터를 저장하며, 파일은 컴퓨터 프로그램이 설정되는 운영 시스템에 의해 정의된다. 컴퓨터 프로그램에 의해 처리되어질 데이터는 "데이터 구조"라 불리는 다른 포맷-이 포맷 또한 특허성이 있음-에 저장되며, 데이터 구조는 일반적으로 컴퓨터 프로그램의 실행 동안, 휘발성 메모리 또는 작업 메모리에 저장된다. 데이터 구조는 일반적으로 데이터가 컴퓨터 프로그램에 의해 효율적으로 처리되게 하는 한편, 데이터를 나타내는 데 필요한 데이터양을 최소화하도록 설정된다.
도 1은 데이터베이스에 대한 어플리케이션으로부터의 가시적 형태의 데이터를 저장하기 위한 정보 저장 및 검색 시스템을 도시한 블럭도.
도 2는 윈도우 환경에서 프린트 프로세스의 동작들을 나타낸 블럭도.
도 3은 데이터베이스를 위한 데이터베이스 테이블 구조의 개략적 표현.
도 4는 데이터베이스를 위한 다른 데이터베이스 테이블 구조의 개략적 표현.
도 5는 데이터베이스를 위한 다른 데이터베이스 테이블 구조의 개략적 표현.
도 6은 데이터베이스를 위한 다른 데이터베이스 테이블 구조의 개략적 표현.
도 7은 데이터베이스에 대한 액세스가 코디네이트되는 서비스 레이어를 갖는 도1의 정보 저장 및 검색 시스템을 도시한 블럭도.
도 8은 데이터베이스의 저장 및 필터링을 도시한 데이터플로우 다이어그램.
도 9는 데이터베이스 내의 레코드들의 복사를 설명하는 데이터플로우 다이어그램.
도 10은 데이터베이스로부터 레코드들의 삭제를 설명하는 데이터플로우 다이어그램.
도 11은 질의 인터페이스로부터의 리포트들의 프린트나, 사전 검토나 송신을 설명하는 데이터플로우 다이어그램.
도 12는 리포트의 사전 검색을 설명하는 데이터플로우 다이어그램.
도 13은 다른 어플리케이션에 대한 리포트의 송신을 설명하는 데이터플로우 다이어그램.
도 14는 스풀 파일의 프로세싱을 설명하는 플로우챠트.
도 15a-b는 스풀 파일의 폰트 프로세싱을 설명하는 플로우.
도 16은 스풀 파일의 텍스트 프로세싱을 설명하는 플로우챠트.
도 17은 텍스트 데이터가 어떻게 문자 구획된 데이터(character delimited data)로, 특히, 스프레드시트들용 테이블에 삽입되기 위한, 탭 구획된 데이터로 변환될 수 있는 지를 설명하는 플로우챠트.
가시적 형태의 데이터는 컴퓨터 프로그램으로부터 수신될 수 있으며, 데이터베이스에 저장될 수 있다. 가시적 형태의 데이터는 예를 들어, 컴퓨터 프로그램에 의한 프린트 동작이나, 일련의 잘라내기 및 붙여넣기 동작과 같은 어떤 다른 동작, 또는 다른 응용 프로그램에 데이터를 보내는 것 등에 의해 응답하여 수신될 수 있다. 가시적 형태의 데이터는 스케일링을 가능하게 하는 벡터 이미지로 저장될 수 있다. 가시적 형태의 데이터는 데이터베이스에 다른 확인 정보 또는 태그로 저장되어서, 데이터베이스 탐색을 용이하게 한다. 데이터베이스내의 데이터는 데이터 보전을 보장하고 데이터가 손상되었을 때를 탐지할 수 있는 방식으로 인코딩될 수 있다. 일 실시예에서, 데이터베이스내의 데이터의 인코딩 및 디코딩을 행함으로써 데이터로의 액세스를 제어하기 위해 서비스 레이어 응용 프로그램이 공급된다. 서비스 레이어는 많은 응용 프로그램이 데이터베이스로의 액세스를 갖게 하는 응용 프로그램 프로그래밍 인터페이스를 가질 수 있다. 데이터베이스로부터 가시적 형태의 데이터를 액세스하여서, 이 데이터를 다른 컴퓨터 프로그램에 공급하기 위해 다른 응용 프로그램이 공급될 수 있다. 이러한 응용 프로그램은 다른 컴퓨터 프로그램을 사용하면서, 사용자가 데이터베이스내의 데이터로부터 복합 자료를 생성하도록한다.
따라서, 다음은 하나로 있거나 또는 임의의 조합으로 있는 본 발명의 여러 측면들을 나타내는 것이다. 본 발명의 여러 측면들로는 컴퓨터 실핼 프로세스, 컴퓨터 시스템, 또는 실체적 정보 기록 또는 전송 매체상에 코딩된 컴퓨터 판독가능 코드를 갖는 컴퓨터 프로그램 제품을 들 수 있다. 본 발명의 또 다른 측면들은 이하 상세히 설명되는 실시예 및 그에 대한 변형으로부터 명백해질 것이다.
일면으로, 가시적 형태의 정보는 컴퓨터 상에 실행된 응용 프로그램으로부터 데이터베이스로 캡처링된다. 가시적 형태의 데이터는 응용 프로그램으로부터 수신된다. 가시적 형태의 데이터에 대응하는 태그 또한 수신된다. 벡터 이미지 및 태그로서의 가시적 형태의 데이터가 데이터베이스에 저장된다.
다른 면으로, 컴퓨터 상에 실시된 응용 프로그램으로부터 가시적 형태의 데이터를 저장하는 데이터베이스는 가시적 형태의 데이터에 대응하는 태그와 가시적 형태의 데이터의 참조를 저장하기 위한 제1 테이블과, 가시적 형태의 데이터의 참조와 함께 벡터 이미지로서의 가시적 형태의 데이터를 저장하기 위한 제2 테이블을 포함할 수 있다.
다른 면으로, 하나 이상의 컴퓨터 상에 실행된 응용 프로그램으로부터의 가시적 형태의 데이터가 벡터 이미지로 저장되는 데이터베이스가 액세스된다. 데이터베이스는 하나 이상의 벡터 이미지를 식별하기 위해 탐색될 수 있다. 식별된 벡터 이미지는 식별된 벡터 이미지와 관련된 태그들에 따라 저장된다. 하나 이상의 식별된 벡터 이미지를 사용자가 선택할 것이 허락되며, 하나 이상의 벡터 이미지는 그 후 디스플레이된다. 디스플레이되는 벡터 이미지가 스케일링되며, 스케일링된 벡터 이미지는 디스플레이된다. 선택된 벡터 이미지내의 텍스트 또한 탐색될 수 있다.
다른 면으로, 가시적 형태의 데이터의 선택된 부분은 제1 응용 프로그램으로부터 제2 응용 프로그램으로 보내진다. 제1 응용 프로그램으로부터 가시적 형태의 데이터에서 선택된 영역의 표시가 수신된다. 또한, 제2 응용 프로그램의 표시도 수신된다. 제2 응용 프로그램에 데이터를 붙여넣기 위해 제2 응용 프로그램에서의 키조작이 결정된다. 가시적 형태의 데이터에서 선택된 영역을 나타내는 데이터가 결정되고, 제2 응용 프로그램이 데이터를 붙여넣을 메모리 영역으로 전송된다. 소정의 키조작은 제2 응용 프로그램에 보내진다.
다른 면으로, 가시적 형태의 텍스트 데이터는 테이블 구조에 삽입하기 위해 문자 구획된 텍스트 데이터로 변환된다. 가시적 형태의 데이터에서 선택된 영역의 표시가 수신된다. 텍스트의 모든 행들에 대해서 수평 부분을 따라, 선택된 영역내의 텍스트의 실재를 나타내기 위한 데이터가 초기화된다. 초기화된 데이터는 텍스트의 모든 행들에 대해서 수평으로 늘어선 부분을 따라, 선택된 영역내의 텍스트의 실재를 표시하도록 수정된다. 문자 구획된 데이터는 행 내의 텍스트 및 행 내의 식별된 열 경계에 따라서 생성된다.
다른 면으로, 텍스트를 위치시키기 위해 텍스트와 수평축 및 수직축을 특정화하는 명령을 포함하는 벡터 이미지내의 텍스트가 탐색된다. 벡터 이미지에서의 명령은 수직축에 따라서 소트(sort)되고, 그 후 수평축에 따라서 소트된다. 순서화된 명령로부터 텍스트의 순서화를 나타내는 리스트 구조가 생성된다. 리스트 구조는 2중 링크 리스트일 수 있다. 리스트 구조는 서로 가까운 텍스트 스트링들과 조합하여서, 리스트 구조가 다중 텍스트 기록에 대해 나뉘어질 수 있어도 텍스트는 위치될 수 있다. 각각의 선택된 메타파일내의 텍스트가 순서화된 리스트로 처리되어서, 워드들이 각 메타파일내에 나타나게 하기 위해 워드들이 탐색될 수 있다. 이러한 순서화는 워드 또는 다른 문자 스트링의 사전 또는 사후 발생이 메타파일내에서와 한 셋트의 메타화일 내에서 확인될 수 있도록 한다.
다른 측면으로, 데이터베이스로의 액세스는 서비스 레이어에 의해 제어된다. 데이터베이스내의 데이터를 저장하도록 요구받은 것에 응답하여, 데이터가 인코딩되며 에러 체크 계산이 데이터상에서 행해진다. 인코딩된 데이터와 에러 체크 계산 결과는 데이터베이스에 저장된다. 데이터베이스로부터 데이터를 판독하도록 요구받은 것에 응답하여, 판독 데이터가 디코딩되며, 에러 체크 계산이 판독 데이터상에서 행해진다. 판독 데이터의 에러 체크 계산 결과는 저장된 데이터상에 행해졌던 에러 체크 계산의 저장 결과와 비교되어서, 임의의 불일치를 확인할 수 있다. 디코딩된 판독 데이터와, 저장된 데이터와 판독 데이터 간의 확인된 임의의 불일치의 표시가 제공된다.
다른 측면으로, 가시적 형태의 데이터를 식별하는 대응 태그에 의해서, 데이터베이스는 가시적 형태의 데이터를 저장한다. 응용 프로그램을 실행시키는 복수의 컴퓨터 각각은 복수의 다른 응용 프로그램들 중의 하나로부터의 가시적 형태의 데이터와, 가시적 형태의 데이터에 대응하는 태그를 수신한다. 벡터 이미지로서의 가시적 형태의 데이터와 대응 태그는 데이터베이스에 저장된다. 복수의 컴퓨터들 중의 하나에서의 응용 프로그램은 데이터베이스의 질의에 응답하여, 태그 및 데이터베이스로부터의 가시적 형태의 데이터를 액세스한다. 다른 응용 프로그램은 데이터베이스로부터 수신된 가시적 형태의 데이터를 포함한 자료들을 생성하기 위해 사용되며, 자료들은 데이터베이스에 저장될 것이다.
다른 측면으로, 벡터 이미지는 벡터 이미지에서 텍스트를 스케일링할 수 있도록 처리된다. 텍스트에 대응하는 벡터 이미지에서의 명령이 식별된다. 식별된 명령들의 특정 폰트들은 폰트들을 스케일 가능하도록 바뀌어질 수 있다. 또한, 문자간 간격이 더해질 수 있다. 텍스트 회전 및 스케일링 또한 변형될 수 있다.
다른 측면으로, 복합 자료는 응용 프로그램에서의 가시적 형태의 데이터로부터 생성될 수 있으며, 응용 프로그램은 데이터베이스가 저장된 컴퓨터상에서 실행된다. 응용 프로그램으로부터의 가시적 형태의 정보는 응용 프로그램으로부터의 가시적 형태의 데이터를 수신하고, 가시적 형태의 데이터에 대응하는 태그를 수신하고, 벡터 이미지로서의 가시적 형태의 데이터와, 태그들을 데이터베이스에 저장함으로써 데이터베이스로 캡처된다. 응용 프로그램으로부터의 가시적 형태의 정보는 데이터베이스로부터 수신된다. 복합 문서는 데이터베이스로부터 검색된 가시적 형태의 정보로부터 생성된다. 가시적 형태의 복합 문서는 응용 프로그램으로부터 가시적 형태의 복합 문서를 수신하고, 가시적 형태의 복합 문서에 대응하는 태그를 수신하고, 벡터 이미지로서의 복합 문서와, 태그를 데이터베이스에 저장함으로써, 데이터베이스에 캡처된다.
컴퓨터 프로그램으로부터의 가시적 형태의 데이터를 검색하고 그것을 데이터베이스에 저장하는 것에 의해 많은 이점들을 얻을 수 있다. 어플리케이션이나 컴퓨터 프로그램으로부터의 가시적 형태의 데이터는 디스플레이나 프린트를 위한 데이터로부터 어플리케이션이나 컴퓨터에 의해 생성되는 임의의 이미지나 그 중 일부의 데이터이다. 이미지는 임의의 디스플레이나 프린트 장치에 디스플레이되거나 프린트될 수 있는 화소들(픽셀들)의 매트릭스를 정의하는 임의의 데이터이다. 각각의 픽셀은 일반적으로 그레이 스케일이나 컬러 팔레트중 어느 하나의 데이터로 정의된다. 벡터 이미지는 드로잉 명령들에 의해 특정된 이미지이다. 예시적인 모양들로는 라인들, 다각형들, 오브젝트들, 및 텍스트를 포함한다. 드로잉 명령들은 픽셀들의 매트릭스에 대한 값들을 생성하기 위해 타겟 디스플레이나 프린트 장치에 대해 인터프리트된다. 일반적으로, 벡터 이미지들은 스케일되거나, 로테이트되거나, 또는 플립되도록 변환될 수 있다. 비트 맵 이미지는 이미지의 각각의 픽셀을 특정하는 매트릭스 값들로 특정된 이미지이다. 비트 맵 이미지는 래스터 이미지(raster image)로서도 공지되어 있다. 비트 맵 이미지는 벡터 이미지에 포함될 수 있다.
대체로, 대부분의 어플리케이션들은 데이터를 디스플레이 장치에 디스플레이하기 위한 벡터 이미지나 비트 맵 이미지 중의 어느 하나로서의 가시적 형태로 변환한다. 어플리케이션들은 또한 가시적 형태의 데이터를 프린트하기 위해 운영 시스템에 대한 함수 호출들도 사용한다. 이 함수 호출들에 응답하여, 운영 시스템은 전형적으로 프린터에 의해 비트 맵 이미지로 변환되는 프린터 제어용 벡터 이미지를 생성한다.
도 1을 참조하여, 어플리케이션으로부터의 가시적 형태의 데이터를 데이터베이스 내로 캡쳐하는 정보 저장 및 검색 시스템이 설명된다. 도 1에서, 어플리케이션(50)은 범용 컴퓨터에서 실행되고 사용자에 의해 사용되어 디스플레이되거나 프린트될 수 있는 가시적 형태를 갖는 정보를 생성한다. 이 가시적 형태는 범용 컴퓨터의 운영 시스템(54)에 의해 정의된 포맷으로 정보 저장 및 검색 시스템 내의 데이터베이스(64) 내로 캡쳐된다. 어플리케이션(50)은 운영 시스템(54)에 함수 호출(52)을 하여 운영 시스템이 가시적 형태의 데이터를 나타내는 데이터(56)를 생성하도록 야기한다. 이러한 데이터(56)는 일반적으로 벡터 이미지 형태이다. 이러한 함수 호출들은 어플리케이션(50)과 같은 어플리케이션들이 데이터를 프린터로 프린트할 수 있도록 해주기 위해 운영 시스템(54)에 의해 제공된다. 그러면, 데이터(56)는 데이터베이스 저장 모듈(58)에 의해 판독되고 태그들(62)을 구비한 리포트(60)로서 데이터베이스(64) 내에 저장된다. 태그들(62)은, 이하에서 보다 상세히 설명되는 바와 같이, 사용자 입력(57)에 의해 제공되는 정보를 포함할 수 있는 리포트용 식별 정보를 포함한다.
프린트와 같은 통상의 동작을 수행하는 프로세스에 있어서, 어플리케이션에 의해 행해진 윈도우 운영 시스템에 대한 함수 호출들로부터의 출력에 따라, 데이터베이스 저장 모듈은 다수개의 어플리케이션들로부터의 독점적 데이터 포맷들을 처리하도록 디자인될 필요는 없다. 개략적으로, 임의의 운영 시스템에 대해, 프린트와 같이, 한 어플리케이션으로부터 다른 어플리케이션으로의 표준 포맷의 출력이 데이터베이스 내에 표준 형태로 캡쳐되고 저장될 수 있다. 어플리케이션(50)과 같은 어플리케이션들은 데이터베이스 내에 가시적 형태의 데이터를 저장하기 위해 데이터베이스와 교신할 수 있도록 디자인될 필요는 없다.
리포트들(60)이 데이터베이스 내에 저장된 후, 데이터베이스 검색 모듈(66)은 하나 이상의 리포트들(70) 및 하나 이상의 태그들(72)을 검색하기 위해 질의들(68)을 통해 데이터베이스를 액세스할 수 있다. 데이터베이스 검색 모듈(66)은 이하에서 상세히 설명되는, 데이터 레코드들의 변경, 복사, 이동, 삭제, 판독 등의 조작과 같은, 임의의 개수의 데이터베이스 관리 작업들을 지원하도록 구현될 수 있다. 질의 인터페이스(76)는 사용자가 데이터베이스에서 리포트들을 검색하고 저장하고 필터링하기 위한 파라미터들을 입력하도록 해준다. 필터링되거나 저장된 리포트들과 연관된 태그들의 컬렉션들이 사용자 검토용으로 질의 인터페이스(76)에 제공된다. 선택된 리포트는 질의 인터페이스(76)를 통해 가능한 명령으로 리포트 미리보기(80)나 다른 어플리케이션(84)에 제공될 수 있다.
리포트 미리보기(80)는 사용자에게 리포트를 디스플레이하기 위해 데이터베이스 검색 모듈(66)을 통해 리포트들(78) 및 태그들(74)을 수신한다. 리포트 미리보기(80)는, 이하에서 더 상세히 설명되는 바와 같이, 사용자가 입력(81)을 제공함으로써 다른 어플리케이션(84)에 전송되고 송신될 리포트나 리포트(82)의 일부분을 선택하도록 해준다. 상기 다른 어플리케이션(84)을 사용하여, 데이터베이스에 저장되어 있고 그로부터 검색되는 많은 리포트들로부터 복합 문서가 컴파일될 수 있다. 어플리케이션(50)이 데이터를 데이터베이스에 저장하는 것과 같은 방식으로, 이 복합 문서는 또한 데이터베이스(64) 내에 저장될 수 있다.
도 1에 도시된 정보 저장 및 검색 시스템의 여러 구성 요소들은 범용 컴퓨터 시스템을 사용하여 컴퓨터 프로그램으로서 구현될 수 있다. 이러한 컴퓨터 시스템은 전형적으로 사용자에게 정보를 디스플레이하는 출력 장치 및 사용자로부터 입력을 수신하는 입력 장치에 접속된 메인 유닛을 포함한다. 메인 유닛은 일반적으로 상호 접속 메카니즘을 통해 메모리 시스템에 접속된 프로세서를 포함한다. 입력 장치와 출력 장치는 또한 상호 접속 메카니즘을 통해 프로세서 및 메모리 시스템에 접속된다.
하나 이상의 출력 장치들이 컴퓨터 시스템에 접속될 수 있다는 것을 이해해야 한다. 출력 장치의 예를 들면, 음극선관(CRT) 디스플레이, 액정 디스플레이(LCD) 및 비디오 출력 장치들, 프린터들, 모뎀과 같은 통신 장치들, 및 디스크나 테이프와 같은 저장 장치들을 포함한다. 하나 이상의 입력 장치들이 컴퓨터 시스템에 접속될 수 있음을 이해해야 한다. 입력 장치들의 예를 들면, 키보드, 키패드, 트랙 볼, 마우스, 펜과 타블렛, 통신 장치, 및 데이터 입력 장치들을 포함한다.
컴퓨터 시스템은 "C++, Visual Basic, JAVA"와 같은 컴퓨터 프로그램 랭귀지나 스크립팅 랭귀지나 어셈블리 랭귀지와 같은 다른 랭귀지를 사용하여 프로그래밍이 가능한 범용 컴퓨터 시스템일 수 있다. 범용 컴퓨터 시스템에서, 프로세서는 전형적으로 Intel로부터 입수 가능한 x86 시리즈들, Pentium 및 Celeron 프로세서들과 같은 상용 프로세서와, AMD와 Cyrix로부터의 유사 장치들, Motorola로부터 입수 가능한 680X0 시리즈 마이크로프로세서들과, IBM으로부터 입수 가능한 Power PC 마이크로프로세서이다. 다른 많은 프로세스들도 가능하다. 이러한 마이크로프로세서는 운영 시스템으로서 일컬어지는 프로그램을 실행하는데, WindowsNT, Window95나 98, UNIX, Linux, Solaris, OS/2, DOS, VMS, MacOS 및 OS8이 그 예들이고, 이들은 다른 프로그램들의 실행을 제어하고, 스케쥴링, 디버깅, 입력/출력 제어, 어카운팅, 컴파일레이션, 스토리지 할당, 데이터 관리와 메모리 관리, 통신 제어 및 관련 서비스들을 제공한다. 프로세서와 운영 시스템은 하이-레벨 프로그램 랭귀지들이 기록되기 위한 컴퓨터 플랫폼 형태를 정의한다.
메모리 시스템은 전형적으로 컴퓨터로 판독 및 기록이 가능한 비휘발성 기록 매체를 포함하며, 그 기록 매체의 예로는 자기 디스크, 플래쉬 메모리 및 테이프들이 있다. 디스크는 플로피 디스크로 공지되어 있는 삭제 가능한 것일 수 있고, 또는 하드 드라이브로 공지되어 있는 영구적인 것일 수도 있다. 디스크는 신호들이 전형적으로 바이너리 형태들로 즉, 1과 0들의 시퀀스로서 인터프리트된 형태로 저장되어 있는 다수개의 트랙들을 갖는다. 이러한 신호들은 마이크로프로세서에 의해 실행될 어플리케이션 프로그램이나 어플리케이션 프로그램에 의해 처리될 디스크상에 저장된 정보를 정의할 수 있다. 전형적으로, 동작중에, 프로세서는 비휘발성 기록 매체로부터 데이터가 집적 회로 소자에 판독되도록 야기하는데, 이 집적 회로 소자는 다이내믹 랜덤 액세스 메모리(DRAM)나 스태틱 메모리(SRAM)와 같은 비휘발성 랜덤 액세스 메모리이다. 집적 회로 메모리 소자는 디스크의 경우보다 프로세서에 의해 더 빠르게 정보를 액세스할 수 있도록 해준다. 프로세서는 집적 회로 메모리 내의 데이터를 조작한 다음, 프로세싱이 완료되면 그 데이터를 디스크에 복사한다. 다양한 메카니즘들이 디스크와 집적 회로 메모리 소자 사이에서 데이터 이동을 관리하기 위해 공지되어 있으나, 본 발명은 거기에만 국한되지 않는다. 본발명은 특정 메모리 시스템에만 국한되는 것이 아니라는 것을 이해해야 한다.
이러한 시스템은 소프트웨어나 하드웨어, 또는 펌웨어, 또는 이 셋의 조합으로 구현될 수 있다. 이 시스템의 여러 소자들은 개별적으로 또는 조합적으로 컴퓨터 프로세서에 의해 실행되기 위해 머신-판독 가능 저장 장치 내에 실제적으로 구현되는 컴퓨터 프로그램 제품으로서 구현될 수 있다. 프로세스의 다양한 단계들은, 입력에 대해 동작하고 출력을 생성함으로써 기능을 수행하기 위해 컴퓨터-판독 가능 매체에 실제적으로 구현되어 있는 프로그램을 실행하는 컴퓨터 프로세서에 의해 수행될 수 있다. 이러한 시스템을 구현하기에 적합한 컴퓨터 프로그래밍 랭귀지들은 프로시쥬얼 프로그래밍 랭귀지들, 오브젝트-오리엔티드 프로그램 랭귀지들, 및 이들의 조합들을 포함할 수 있다.
본 발명은 특정한 플랫폼, 특정한 프로세서, 또는 특정한 프로그래밍 랭귀지에만 국한되지는 않는다는 것을 이해해야 한다. 또한, 컴퓨터 시스템은 멀티프로세서 컴퓨터 시스템일 수 있고, 또는 컴퓨터 네트워크에 걸쳐 접속된 다수개의 컴퓨터들을 포함할 수 있다. 도 1에 도시된 구성 요소들과 나머지 도면들에 도시된 그들의 내부 소자들은 컴퓨터 프로그램의 분리된 모듈들일 수 있고, 또는 별도의 컴퓨터들에서 작동될 수 있는 분리된 컴퓨터 프로그램들일 수 있다. 이 소자들에 의해 생성된 데이터는 메모리 시스템에 저장되거나 또는 컴퓨터 시스템들 사이에서 전송될 수 있다.
도 1에 도시된 시스템은 컴퓨터 네트워크를 사용하여 구현되어, 어플리케이션(50), 운영 시스템(54) 및 데이터베이스 저장 모듈(58)이 하나의 컴퓨터에서 실행되고, 데이터베이스(64)는 다른 컴퓨터에서 실행되고, 데이터 검색 모듈(66)과 리포트 사전 검색기(80)와 다른 어플리케이션(84)은 또 다른 컴퓨터 상에서 실행될 수 있다. 데이터베이스 검색 모듈(66)을 갖는 많은 컴퓨터들, 및 데이터베이스 저장 모듈(58)과 많은 데이터베이스(64)를 갖는 많은 컴퓨터들이 있을 수 있다. 어떤 컴퓨터는 어플리케이션들(54, 84)과 함께 사용될 데이터베이스 검색 모듈과 데이터베이스 저장 모듈을 둘다 가질 수 있다. 어떤 컴퓨터는 어플리케이션들(54, 84)과 함께 데이터베이스 검색 모듈, 데이터베이스 저장 모듈 및 데이터베이스를 가질 수도 있다. 네트워크 내의 여러 가능한 구성들의 컴퓨터들은, 비록 지리적으로 분산되어 있는 다수개의 다른 컴퓨터 프로그램들을 사용하여 다수의 다른 사용자들에 의해 시간 주기 동안 데이터가 생성되고 사용되고 공유되더라도, 많은 사용자들이 다수개의 데이터 소스들로부터 복합 문서들을 생성할 수 있도록 해준다.
이제 도 1의 여러 모듈들이 더 상세히 설명될 것이다. 어플리케이션들(50, 84)은 범용 컴퓨터의 운영 시스템(54)에 의해 실행될 수 있는 임의의 어플리케이션들일 수 있다. 어플리케이션들의 예로는 실험실 장비 제어 및 데이터 분석 프로그램들, 워드 프로세싱 프로그램들, 그래픽 프로그램들 및 스프레드시트 프로그램들을 포함할 수 있으나, 이들로만 국한되지는 않는다.
데이터베이스(64)는 관계형 데이터베이스, 객체 지향형 데이터베이스, 비구조화된 데이터베이스나 기타 데이터베이스 등을 포함하는 임의 종류의 데이터베이스일 수 있다. 관계형 데이터베이스의 예로는 캘리포니아 레드우드시 소재의 오라클사의 Oracle 8i, 캘리포니아 멘로 파크 소재의 인포믹스 소프트웨어사의 Informix Dynamic Server, 뉴욕 요크타운 하이츠 소재의 IBM사의 DB2, 워싱턴 레드몬드 소재의 마이크로소프트사의 Access를 들 수 있다. 객체 지향형 데이터베이스의 예로는 매사츄세츠 버링턴 소재의 Object Design의 ObjectStore가 있다. 비구조화된 데이터베이스의 예로는 매사츄세츠 캠브릿지 소재의 로터스사의 Notes가 있다. 데이터베이스는 또한 플랫 파일 시스템을 사용하여, 예를 들어, 캘리포니아 스콧츠 밸리 소재의 이전 볼랜드 인터내셔널사인 Inprise사의 현재 Visual dBASE로서 알려진 dBASE의 초기 버젼 등에서와 같은 캐릭터-구분 필드를 갖는 파일을 사용하여 구성될 수 있다.
운영 시스템(54)은, 예를 들어, 마이크로소프사의 Windows95, Windows98 또는 WindowsNT일 수 있다. 이러한 운영 시스템을 사용하면, Open Databse Connection(ODBC) 프로토콜을 통해 데이터베이스(64)르 액세스할 수있다. 다른 예의 운영 시스템은 상기에서 열거하였다. 본 발명은 임의 특정 운영 시스템이나 또는 본원에서 열거한 것에만 한정되는 것은 아니다. 어플리케이션을 명령하는 임의 특정 실시예에서 사용된 운영 시스템을 사용하여 운영 시스템이 프린트 구동기 또는 다른 어플리케이션에 의해 액세스에 대한 가시적 형태의 데이터를 생성하도록 할 수 있다. 이하의 기술에서, Windows95, Windows98 또는 WindowsNT 운영 시스템은 단지 예시적일 뿐으로서, 그들의 출력 사용 방법 및 운영 시스템의 사양에 따른 시스템의 모듈 중에서 제어 조정 방법에 대한 대응하는 변경을 함으로써 다른 운영 시스템을 사용할 수 있다. 이하의 기술에서는 어플리케이션으로부터 Windows 운영 시스템으로의 기능 호출 방법, 예를 들어, 프린트 명령을 사용하여 이 어플리케이션으로부터의 데이터를 데이터베이스 내로 전송할 수 있다. 운영 시스템으로의 다른 기능 호출 또한 사용될 수 있다. 가시적 형태의 데이터를 표준 형태로 한 어플리케이션에서 다른 어플리케이션으로 전송시키는 다른 메카니즘을 사용할 수도 있다.
Windows95, Windows98 또는 WindowsNT 운영 시스템을 사용하면, 데이터를 프린트하기 위해 어플리케이션으로부터의 기능 호출에 응답하여 운영 시스템에 의해 출력된 데이터의 가시 형태를 표현하는 데이터(56)는 마이크로소프트사의 Windows Metafile 포맷이다. 메타파일(metafile)은 벡터 이미지, 즉 명령 목록, 드로우 객체, 텍스트, 스타일 제어 명령이다. 이론적으로는, 메타파일은 임의 Windows 어플리케이션에 사용될 수 있다. Windows 메타파일(WMF)은 Windows 3.1에 의해 지원되는 16-비트 메타파일이다. 증강된 메타파일(EMF)은 WMF 명령의 수퍼 셋트를 갖는 Windows95, Windows98 또는 WindowsNT에 의해 지원되는 32-비트의 증강된 메타파일이다.
도 2를 참조하면서 Windows 운영 시스템에서의 프린팅 동작 및 어플리케이션으로부터 데이터베이스 내로 가시적 형태의 데이터를 포착하기 위한 사용에 대해 기술하기로 한다. Windows 환경에서 프린터로 프린트하기 위해, 프린터는 연관된 프린터 구동기(90)를 갖는다. 프린터가 설치되면, 운영 시스템에는 프린터 구동기의 위치인 그 파일명이 통지된다. 프린터 구동기는 운영 시스템에 대한 프린터의 특징들을 지정한다,
(도 1에서와 같은)어플리케이션(50)은 사용자가 메뉴를 갖는 그래픽 사용자 인터페이스 등의 사용자 인터페이스를 통해 프린터를 선택할 수 있도록 하게 한다. 선택된 프린터는 또한 선택될 수 있는 각 종 프린팅 옵션들을 가질 수 있다. 사용자 입력에 응답하여 어플리케이션에 의해 행해진 기능 호출을 통해, 사용자는 프린터 구동기 에 대한 사용자 인터페이스(94)를 호출하여 사용자로 하여금 사용자 정보 및 프린팅 선취권을 지정할 수 있도록 하게 한다. 선택된 프린터, 선취권 및 프린트될 정보가 주어지면, 어플리케이션(50)은 Windows 운영 시스템의 일부인 Graphics Device Interface(GDI-32)92에 기능 호출을 발생시킨다. GDI-32는 선택된 프린터 구동기(90)와 이후에 어플리케이션(50)에 다시 제공되고 GDI-32에 의해 보유되는 프린터에 대한 정보를 위한 사용자 인터페이스에게 운영 시스템에 대한 기능 호출의 정확한 시퀀스의 생성 프로세스를 지원하도록 요청하여 선택된 정보가 프린트된다.
GDI-32는 데이터를 스풀 파일(98)로 출력시켜 스풀러 프로세스(96)에 대한 스풀 파일명을 갖는 기능 호출을 구성함으로써 지정된 프린터에 의한 프린팅을 위한 스풀 파일을 큐한다. Windows 운영 시스템 내의 스풀 파일은 마이크로소프트사의 Windows 메타파일로 지정된다. 그러나, 프린터 스풀 파일은 진정한 메타피일은 아닌 데, 이는 이 파일이 실제로는 임의 참조 또는 임베드된 메타파일 이외에도 프린터 셋업 데이터를 포함하고 있기 때문이다. Windows95에서, 스풀 파일은 임의 메타파일의 파일명을 포함한다. WindowsNT에서는, 메타파일은 스풀 파일에 임베드된다. 두 경우 모두, 프린트된 문서마다 하나의 스풀 파일이 있으며, 문서의 각 페이지는 독립된 메타파일을 갖는다.
스풀러 프로세스(96)에는 선택된 프린터 구동기(90)에 연관된 프린터 프로세서(100)의 위치가 알려진다. 스풀러 프로세스(96)는 프린터 프로세서를 호출하여 스풀러 프로세스가 프린터 프로세서에서 큐되어 있는 임의스풀 파일을 처리한다. 일반적으로, 전형적인 프린터 프로세서는 스풀러 프로세스(96)로부터 스풀 파일(98)을 수신하여 이것을 프린터에서 사용되는 프린터 제어 언어(PCL)인 PostScript 포맷이나, 전형적으로 다른 전매 포맷으로 변환시킨다. 프린팅 대신, 도 2의 프린터 프로세서(100)는 운영 시스템에 의해 생성된 벡터 이미지 데이터를 포맷팅하고, 태그에 연관시켜 데이터베이스에 저장시킨다.
메타파일, 프린터 구동기, 프린터 프로세서, 스풀러 프로세스, 및 스풀 파일에 대한 보다 상세한 것은 인터넷을 통해 접근할 수 있는 Microsoft Developer Network 및 Microsoft Development Network Library를 통해 얻을 수 있다.
도 2에서 도시된 한 실시예에서는, 프린터 프로세서(100)는 두 프로세스를 생성한다. 도 7에 관련하여 후술될 제1 프로세스인 태그 데이터 획득 프로세스(104)는 데이터베이스에 저장된 리포트의 사용자로부터 태그 정보를 얻는다. 이 프로세스는 시용자에게 사용자 인터페이스를 제공하여 사용자로 하여금 태그 데이터를 입력하도록 하게 하고 소정의 이름을 갖는 파일(105)에 그 태그를 저장하도록 하게 한다. 사용자는 각 리포트마다 태그를 입력할 수 있거나 태그 데이터 획득 프로세스가 초기 셋트의 태그를 사용하여 사용자와의 대화없이도 데이터베이스에 저장될 각 리포트에 대한 태그를 계산한다. 도 7에 관련하여 후술될 제2 프로세스인 데이터베이스 액세스 프로세스(106)는 파일(105)을 통해 태그 데이터 획득 프로세스(104)로부터 태그 정보와 저장될 메타파일명(108)을 얻는다. 태그와 메타파일은 처리되어 데이터베이스(64)에 전송된다.
프린터 프로세서(100)가 비록 스풀 파일로부터 데이터를 판독하여 그 데이터를 태그와 함께 데이터베이스에 저장하지만, 일부 경우에는 스풀 파일 내의 벡터 이미지인 예를 들어, Windows 메타파일이 스케일러블하지 않을 수도 있는 것으로 알려져 있다. 상술된 바와 같이, 스풀 파일은 또한 진정한 Windows 메타파일이 아니다. 그러므로, 도 14 내지 도 16에 관련하여 후술될 메타파일 프로세서(102)는 프린터 프로세서(100)로부터의 기능 호출에 응답하여 메타파일(108)로 스풀 파일을 처리함으로써 그들의 스케일가능성이 향상되거나, 아나면 스풀 파일을 하나 이상의 Windows 메타파일로 재포맷하여 리포트 또는 문서의 각 페이지마다 하나씩 프린트된다. 스풀 파일을 처리함으로써 생성된 메타파일(108)의 파일명은 프린터 프로세서(100)를 통해 또는 메타파일 프로세서(102)에 의해 직접적으로 데이터베이스 액세스 프로세스 이용된다.
프린터 구동기(90), 프린터 구동기 사용자 인터페이스(94), 프린터 프로세서(100), 메타파일 프로세서(102), 태그 데이터 획득 프로세스(104), 및 데이터베이스 액세스 프로세스(106)는 도 1의 데이터베이스 기억 모듈(58)을 형성한다.
프린터 구동기 및 프린터 프로세서가 어플리케이션으로부터의 가시적 형태의 데이터를 데이터베이스에 저장하는 방법에 대해 기술하였지만, 이 데이터가 저장되는 데이터베이스에 대해 보다 싱세히 기술하기로 한다. 데이터베이스는 선택된 데이터베이스 유형에 적합한 구조를 사용하여 리포트와 태그를 저장한다. 저장될 수 있는 정보의 종류, 즉 태그는 예를 들어, 리포트에 대한 정보, 컴퓨터 환경 정보, 사용자 정보, 조직 정보 및 날짜와 시간 정보의 임의 결합을 포함할 수 있다. 데이터베이스 구조에 적절한 변경을 함으로써 희망에 따라 각 종 다른 정보를 저장할 수 있다. 리포트에 관한 정보의 예로는 리포트의 명칭, 리포트가 준비된 페이지수 및 프로젝트, 사용자 코멘트, 소스 어플리케이션 및 임의 일괄(batch) 식별자를 포함한다. 컴퓨터 환경 정보의 예로는 리포트가 생성된 어의 명칭 및/또는 버젼, 머신 식별자, 머신 위치, 운영 시스템 및 머신의 임의그룹이나 도메인 명칭을 포함한다. 사용자 정보의 예로는 로그인 명칭 등의 사용자 식별자, 및 접속 정보를 포함한다. 조직 정보의 예로는 사용자가 속하는 그룹의 명칭 및 사용자 타이틀을 포함한다.
도 3 내지 도 6은 관계형 데이터베이스에 리포트 및 태그를 저장하는 데이터베이스 스키마의 예를 도시한다. 임의 다른 데이터베이스 스키마에 사용할 수 있으며 이하의 예는 단지 예시에 불과하다는 것에 주목할 필요가 있다. Oracle 및 Microsoft Access 데이터베이스에 대해 변수 형태가 지정되어 있다. 다른 데이터베이스도 사용될 수 있으며 변수 형태는 다른 데이터베이스의 사양 및 동작에 따라 정의될 수 있다.
도 3은 각 리포트에 대한 태그 정보를 갖는 레코드를 포함하는 메인 테이블(300)을 도시한다. 이 테이블에서, 각 리포트는 데이터베이스에 프린트되고 레코드로서 부가되며, 각 레코드에는 고유의 식별자 LTId가 할당되어 있다. LTId는 후술될 도 6의 필드(602)에 저장된 값 LTLastId를 증가시켜 갱신시킴으로써 발생될 수 있다. 메인 테이블(300)은 필드 1(302)에 리포트 식별 번호인 LTId인 Access 및 Oracle의 정수 형태의 변수를 포함한다. 필드 2(304)의 LTVerson은 Access 및 Oracle의 정수 형태의 변수이고, 레코드가 데이터베이스에 삽입되었을 때 사용된 데이터베이스 스키마의 버젼이다. 필드 3(306)의 LTPrjDesc는 Access 및 Oracle의 Varchar(50) 형태의 변수이고, 프로젝트의 50 캐릭터 기술이다. 필드 4(308) 내의 LTRepNme는 Access 및 Oracle의 Varchar(30) 형태의 변수이고, 리포트명의 30 캐릭터 기술이다. 필드 5(310) 내의 LTRepId는 Access 및 Oracle의 Varchar(150) 형태의 변수이고 리포트명의 150 캐릭터 기술이다. 필드 6(312) 내의 LTBtchId는 Access 및 Oracle의 Varchar(30) 형태의 변수이고 배치 식별의 30 캐릭터 기술이다. 필드 7(314) 내의 LTUsrNme는 Access 및 Oracle의 Varchar(30) 형태의 변수이고 사용자명의 30 캐릭터 기술이다. 필드 8(316) 내의 LTUsrCmnt는 Access 및 Oracle의 Varchar(254) 형태의 변수이고 사용자 코멘트의 30 캐릭터 기술이다. 사용자는 이 필드에 키워드 또는 다른 정보를 삽입하여 후속 검색을 용이하게 할 수 있다. 필드 9(318) 내의 LTPrtDat는 Access 및 Oracle의 Varchar(30) 형태의 변수이고 프린트 날짜를 식별하는 30 캐릭터 기술이다. 필드 10(320) 내의 LTPrtTim은 Access 및 Oracle의 Varchar(30) 형태의 변수이고 프린트 시간을 식별하는 30 캐릭터 기술이다. 필드 11(322) 내의 LTPrtApp는 Access 및 Oracle의 Varchar(50) 형태의 변수이고 소스 어플리케이션의 명칭의 50 캐릭터 기술이다. 필드 12(324) 내의 LTMachNme는 Access 및 Oracle의 Varchar(50) 형태의 변수이고 소스 어플리케이션이 실행된 머신 명칭의 50 캐릭터 기술이다. 필드 13(326) 내의 LTDomnNme는 Access 및 Oracle의 Varchar(50) 형태의 변수이고 머신이 위치되는 도메인 또는 워크그룹 명칭의 50 캐릭터 기술이다. 필드 14(328) 내의 LTLogNme는 Access 및 Oracle의 Varchar(50) 형태의 변수이고 소스 어플리케이션의 로그인 명칭의 50 캐릭터 기술이다. 필드 15(330) 내의 LTXExtnt는 Access 및 Oracle의 정수 형태의 변수이고 리포트의 페이지의 X 내용이다. 필드 16(332) 내의 LTYExtnt는 Access 및 Oracle의 정수 형태의 변수이고 리포트의 페이지의 Y 내용이다. 필드 17(334) 내의 LTNumOfPg는 Access 및 Oracle의 정수 형태의 변수이고 리포트의 페이지수이다. 일 실시예에서는, 이 필드가 블랭크로 남겨지면 페이지수가 도 4의 테이블로부터 LTId에 대해 계산된다. 필드 18(336) 내의 LRCRC32는 Access 및 Oracle의 정수 형태의 변수이고 레코드의 태그 및 번호 데이터의 CRC이다. 일 실시예에서, CRC의 계산값이 저장값과 일치하지 않으면, 이것은 데이터가 파괴된 것을 나타낸다.
도 4는 페이지 테이블(400)을 설명한다. 페이지 테이블(400)은 리포트에서 페이지의 수를 식별하는데 도움이 되는 레코드를 포함한다. 일 실시예에서, 각각의 페이지는 하나로 시작하는 페이지의 수의 시컨스를 갖는 페이지 번호를 사용하여 식별된다. 일 실시예에서, 테이블은 LTId, 레코드 1 및 페이지 번호를 포함하는 것으로 인덱싱된다. 필드 1(302)에서, LTId는 Access 및 Oracle 모두에 이용가능한 정수 변수 타입이며, 리포트 식별 번호이다. 필드 2(402)에서, LTPgNum은 Access 및 Oracle 모두에 이용가능한 Varchar(100)이며, 페이지 정보의 50 문자 설명이다. 이 레코드는 생략될 수 있다.
도 5는 메타파일 데이터 테이블(500)이다. 메타파일 데이터 테이블(500)은 메타파일을 유지하는 레코드를 포함한다. 일 실시예에서, 각각의 프린트된 페이지는 이런 테이블에 저장된 메타파일이다. 일 실시예에서, 메타파일은 압축되고 인코딩되며, 이는 버퍼 타입을 식별하는 특정 레코드에 의해 표시된다. 데이터 테이블(500)은 리포트 식별 번호인 Access 및 Oracle 모두에 이용가능한 정수 변수 타입이다. 필드 2(402)에서, LTPgNum은 레코드의 페이지 번호를 표현하는 Access 및 Oracle 모두에 이용가능한 정수 변수 타입이다. 필드 3(502)에서, LTMFRNum은 Access 및 Oracle 모두에 이용가능한 정수 변수 타입고, 메타파일 레코드 번호를 표현한다. 일 실시예에서, LTId, LTPgNum 및 LTMFRNum은 유일한 레코드 식별자로 이루어진다. 필드 4(504)에서, LTMFBfTY는 메타파일 버퍼 타입을 표현하는 Access 및 Oracle 모두에 이용가능한 정수 변수 타입이다. 일 실시예에서, 버퍼 타입은 저장된 메타파일의 타입을 특히 식별하며, 일 실시예에서는 정규의 인헨스되고 인코딩된 베이스-64 또는 메타파일 레코드의 다른 형태이다. 필드 5(506)에서, LTMFBfTY는 LTMFBufr, 필드 6(508)에서 데이터의 길이를 표현하는 ccess 및 Oracle 모두에 이용가능한 정수이다. 필드 6(508)에서, LTMFBufr은 Acces에서의 메모 변수 타입이며, 블럭에 저장된 일련의 메타파일을 포함하는 롱(long) 변수 타입이다. 각각의 블럭은 예컨데 16K 바이트의 크기를 갖는다.
도 6은 제어 테이블(600)을 나타낸다. 제어 테이블(600)은 데이터베이스에서 삽입된 마지막 LTId를 표현하는 Access 및 Oracle 모두에 있는 정수 변수인 필드 1(602)에서의 astId를 포함한다. 볼륨은 레코드가 감분되는 대신에 삭제되는 경우 동일하게 유지될 수 있다. 볼륨은 새로운 엔트리가 1로부터 시작하도록 모든 레코드를 삭제하는 경우 0으로 리셋된다. 볼륨은 예컨데 4,294,967,295의 최대치를 가진다.
지금까지 데이터베이스와 이것이 어떻게 구성되는지가 설명되었다면, 정보를 저장하며 검색하기 위한 데이터베이스의 액세스는 후술된다. 몇가지 이유로, "서비스 레이어"으로 불리는 프로그램은 다른 어플리케이션이 데이터베이스를 액세스하는데 제공된다. 예커데, 서비스 레이어는 다른 어플리케이션이 다양한 데이터베이스 동작을 수행하게 하는 단순한 기능을 제공함에 의해 데이터베이스의 복잡성으로부터 어플리케이션을 분리한다. 서비스 레이어는 예컨데, 어플리케이션으로부터의 기능 호출에 응답하여 ODBC를 통해 데이터베이스 상의 동작을 수행한다. 또한, 서비스 레이어에 에러 체크 및 데이터 인코딩을 제공함에 의해 데이터베이스에서 임의의 변경된 데이터가 삭제될 수 있다.
도 7은 프린트 구동기(90), 프린트 프로세서(100), 메타파일 프로세서(102), 및 도 7에서의 "프린트 구동기"(204)로서 도시된 바와 같이 도 2의 프린트 구동기 사용자 인터페이스(94)가 어떻게 서비스 레이어(200)와 상호 작용을 하는지 더욱 상세히 설명한다. 데이터베이스로부터 정보를 검색할 때 서비스 레이어(200)의 동작은 도 8 내지 13과 연관되어 상세히 설명된다. 도 7에서, 서비스 레이어(200)는 프린트 구동기(204)에 의해 생성된 리포트(메타파일(108))와, 리포트용 메타파일을 포함하는 파일(108)의 이름 및 태그를 특정함에 의해 파일(105)로부터 데이터베이스 액세스 프로세서(106)를 통한 태그 데이터를 수신한다. 이 데이터는 ODBC 레이어(206)에 대한 호출을 통해 서비스 레이어에 의한 데이터베이스에 저장된다. 프린트 구동기(204), 데이터베이스 액세스 프로세서(106) 및 서비스 레이어(200)을 갖는 태그 데이터 획득(104)의 상호 작용은 이하 상세히 설명된다.
일반적으로, 상술한 바와 같이, 프린트 구동기(204)는 파일(105)에 저장된 메타파일 이름을 갖는 스풀 파일(98)로부터 메타파일(108)이 생성되도록 한다. 태그 데이터는 태그 데이터 획득 프로세스(104)에 의해 파일(105)에 저장된다. 태그 데이터 획득 프로세스는 이런 리포트에 대한 사용자로부터 태그 데이터를 획득하기 위하여 프린트 구동기(204)에 의해 일어난다. 태그 데이터 획득 모듈은 2개의 동작 모드: 배치 및 매뉴얼을 가진다. 이런 동작 모드는 프린트 구동기 사용자 인터페이스(94)를 통해 사용자에 의해 소정의 어플리케이션, 또는 모든 어플리케이션으로 설정된다. 이런 설정 정보는 파일(105)에 저장된다. 태그 데이터 획득 프로세스가 일어날 때, 프린트 상태는 설정 파리미터로부터 검색된다. 이런 어플리케이션에 대한 프린트 상태가 배치 프린팅이라면, 태그의 세트는 이런 어플리케이션에 대해 임의로 이전에 저장된 태그로부터 계산된다. 그렇치 않다면, 대화상자는 사용자에게 태그 정보를 입력하라고 요청하도록 디스플레이된다. 사용자가 태그 정보를 입력한 후, 또는 태그 정보가 계산된 후, 이런 어플리케이션용 태그 정보는 파일(105)에 저장된다.
데이터베이스 액세스 모듈(106)은 태그 및 메타파일을 데이터베이스에 저장하기 위해 프린트 구동기(204)에 의해 일어난다. 특히, 데이터베이스 모듈(106)은 데이터베이스를 열며 데이터베이스에 의해 요구될 수 있는 임의의 인증을 조작한다. 이런 동작을 수행하기 위하여, 데이터베이스 액세스 프로세스(106)는 ODBC 레이어(206)를 통해 데이터베이스를 열며, 이런 데이터베이스에 대한 사용자의 인증, 및 데이터베이스 처리의 개시 요구를 순서대로 발하는 서비스 레이어(200)에 요구를 발한다. 성공적인 열기 및 인증 후에, 데이터베이스 액세스 프로세스(106)는 파일(105)로부터 메타파일 이름에 의해 특정된 메타파일을 저장하기 위하여 서비스 레이어(200)에 대한 요구를 낸다. 이런 요구에 응답하여, 서비스 레이어는 데이터베이스 액세스 프로세스(106)로부터 검색된 메타파일 이름에 따라 메타파일(108)을 검색하고, 이들을 ODBC 레이어(206)를 통해 요구를 냄에 의해 데이터베이스에서의 메타파일 테이블에 저장한다. 데이터베이스 액세스 프로세스(106)는 태그를 서비스 레이어(200)에 제공함에 의해 서비스 레이어가 태그 정보를 저장하게 요구한다. 데이터베이스 액세스 프로세스(106)는 서비스 레이어(200)에 요구를 냄에 의해 데이터베이스를 닫는다. 서비스 레이어(200)는 이후 데이터베이스에 트랜젝션을 전송하며 ODBC 레이어(206)에 대한 요구로부터 데이터베이스를 닫는다.
서비스 레이어(200)는 보다 효율적인 저장과 데이터 무결 체크 모두를 제공하며, 또한 데이터베이스에서의 리포트 및 태그를 저장한다. 예컨데, 도 7에 도시된 바와 같이, 인입되는 가시적 형태의 데이터는 공지된 기술 중에서 데이터 압축 알고리즘을 사용하여 압축될 수 있다. 손실없는 압축 알고리즘은 예컨데, DC Micro Development로부터 Crusher software library에서 이용가능하다. 에러 체크 계산, 예컨데 CRC(Cyclical Reundancy Check) 동작은 압축된 데이터에 대한 CRC 값을 계산하는데 사용될 수 있다. 데이터베이스로부터 데이터를 판독할 때, 판독된 데이터에 대한 CRC 값은 계산되며, 데이터가 손상됐는지 여부를 검출하기 위해 저장된 값과 비교된다. 태그 데이터는 또한 태그 데이터에 대한 CRC 값을 계산하기 위해 프로세싱된다. 태그 데이터를 데이터베이스로부터 판독할 때, CRC 값은 태그 데이터의 무결성을 검증하기 위해 체크된다. 압축된 시각적 형태의 데이터는 8비트 이진 데이터의 저장을 지원하지 않는 데이터베이스에서 저장이 허용되게 인코딩된다. 예시적인 인코딩 기술은 베이스 64 인코딩이다. 인코딩된 데이터는 16킬로 바이트의 블록으로 분할된다. 데이터베이스 레코드는 인코딩된 데이터의 각각의 페이지의 블럭 각각에 대해 기록된다.
서비스 레이어는 어플리케이션이 사용자의 질의에 응답하여 데이터베이스를 탐색하며 데이터베이스로부터 데이터를 검색하도록 어플리케이션과 데이터베이스 사이의 중간으로서 작용한다. 서비스 레이어를 사용하는 2개의 다른 어플리케이션과 연관된 서비스 레이어의 동작은 도 8 내지 13과 연관해서 이하 상세히 설명된다.
일반적으로, 서비스 레이어(200)는 데이터가 데이터베이스에 기록될 때 데이터 상에서 수행되는 동작을 검색한다. 예컨데, 서비스 레이어는 데이터를 인코딩하며, 데이터 무결성을 확신하기 위하여 CRC 값을 체크하며, 데이터가 다른 어플리케이션으로 통과하기 전의 데이터를 압축해제한다. 유사하게, 태그 데이터는 검색되며, 태그 데이터가 다른 어플리케이션으로 통과되기 전에 체크된다. 서비스 레이어는 다른 어플리케이션으로부터 제공된 질의에 따라 데이터베이스를 또한 질의한다.
도 8은 사용자가 데이터베이스에 적용될 소트 또는 필터 동작을 관찰하며 특정하기 위해 데이터베이스를 선택할 때 질의 인터페이스(76)(도 1), 서비스 레이어(200)(도 7), 및 데이터베이스 사이의 상호 작용을 설명한다. 질의 인터페이스(76)는 요구를 서비스 레이어로 통과시킨다. 서비스 레이어는 이름을 각각 갖는 데이터베이스의 리스트를 획득하기 위하여 ODBC 레이어에 요구를 낸다. 서비스 레이어는 이런 리스트를 수신하여 이를 사용자에게 표현 및 선택하기 위해 디스플레이에 제공한다.
사용자가 데이터베이스를 선택하고 필터 또는 소트 동작을 선택적으로 특정한 후, 질의 인터페이스는 서비스 레이어에게 데이터베이스가 열리도록 하는 요구를 낸다. 임의의 필터 또는 소트 동작은 데이터베이스 구조 및 데이터베이스를 액세스하는데 사용되는 질의 언어에 따라 정의된다. 서비스 레이어는 이런 사용자에 대한 데이터베이스를 열기 위하여 ODBC 레이어(206)를 통해 데이터베이스로 요구를 낸다. 데이터베이스는 사용자에게 사용자명 및 암호를 프롬프트한다. 서비스 레이어는 사용자에 의해 특정된 임의의 소트 또는 필터 파리미터에 기초로 한 질의를 준비한다. 이런 질의는 데이터베이스에 발해지며 주 테이블에 적용된다. 한 세트의 레코드는 서비스 레이어에 의해 데이터베이스로부터 검색되며, 태그의 CRC 값은 인증된다. 한 세트의 레코드는 레코드용 태그의 CRC 값이 정확한지 여부를 나타내는 플래그를 각각의 엔트리가 부가적으로 갖는 리스트에 위치한다. 리스트는 사용자에 대한 표현을 위해 질의 인터페이스로 복귀한다. 디스플레이될 때, 질의 인터페이스는 임의의 레코드가 CRC 플래그에 기초하여 변경되는 여부를 사용자에게 시각적 표시로 제공한다. 리스트는 제한된 엔트리 수를 가지며, 그 경우 서비스 레이어는 데이터베이스로부터 레코드 판독을 정지하며 리스트가 풀(full) 일때 커서를 저장한다.
사용자는 예컨데 리스트를 통해 스크롤링 또는 리스트의 페이지를 통해 스크롤링함에 의해 리스트를 통해 네비게이트될 수 있다. 사용자로부터의 스크롤링 명령에 응답하여 질의 인터페이스는 서비스 레이어에게 필요한 데이터베이스로부터의 레코드를 더욱 액세스하게 요구한다. 리프레쉬 명령에 응답하여 질의 인터페이스는 서비스 레이어에 리프레쉬 명령을 낸다. 서비스 레이어는 임의의 저장된 커서를 무효화하며, 상술한 바와 같이 동일한 방식으로 레코드의 새로운 리스트를 생성한다.
사용자는 소트 또는 필터 파라미터의 변경을 또한 결정할 수 있다. 소트 또는 필터 파라미터에서의 변화에 응답하여 질의 인터페이스는 파라미터를 저장하는 서비스 레이어에 새로운 파라미터를 전송한다. 질의 인터페이스는 리프레쉬 명령을 서비스 레이어에 내며 새로운 세트의 태그를 수신한다.
사용자는 질의 인터페이스에 의해 요구가 서비스 레이어에 전송되도록 하는 데이터베이스를 닫는 것에 의해서 질의 인터페이스의 사용을 종료한다. 서비스 레이어는 임의의 저장된 커서를 무효화시키며 ODBC 레이어를 통해 데이터베이스에 닫기 명령을 낸다.
다른 데이터베이스 관리 기능은 소트 및 필터 명령을 사용하는 데이터베이스를 탐색하는 것에 덧붙여 사용자에 의해 수행될 수 있다. 그런 기능은 하나의 데이터베이스로부터 다른 데이터베이스로의 레코드 복사, 데이터베이스로부터 레코드 삭제, 하나의 데이터베이스로부터 다른 데이터베이스로 레코드를 이동(레코드를 복사하고 이들을 삭제함에 의해 수행됨), 및 데이터베이스를 함께 병합(2개 이상의 데이터베이스로부터 다른 데이터베이스로 모든 레코드를 복사함에 의해 수행됨)을 포함한다.
하나의 데이터베이스로부터 다른 데이터베이스로 복사는 도 9를 참고로 이하 설명된다. 사용자는 이미 열린 데이터베이스를 가지며 한 세트의 리포트를 본다고 가정하자. 질의 인터페이스(76)는 하나 이상의 레코드의 사용자 선택, 및 데이터베이스에 대한 선택된 레코드를 복사하기 위한 사용자로부터의 명령을 수신한다. 선택된 레코드는 질의 인터페이스에 의해 서비스 레이어에 나타난다. 디스플레이는 상술한 방식으로 데이터베이스명이 열리도록 사용자를 프롬프트한다. 레코드가 복사될 데이터베이스는 서비스 레이어를 통해 열리며 데이터베이스는 인증을 위해 사용자를 프롬프트한다.
질의 인터페이스는 선택된 레코드를 복사하기 위하여 서비스 레이어에 요구를 낸다. 응답시, 서비스 레이어는 임의의 저장된 커서를 무효화하며 선택된 리포트 및 페이지에 기초한 질의 문장을 필터로서 준비한다. 질의는 메타파일, 페이지 및 데이터베이스의 주 테이블 상에서 수행된다. 주 테이블에서의 각각의 레코드에서, 새로운 리포트 식별자는 그 제어 테이블을 사용하는 목적지 데이터베이스에 대해 계산된다. 데이터베이스로부터 복원된 레코드는 목적 데이터베이스의 대응 주 테이블, 페이지 테이블, 및 메타파일 테이블에 복사된다. 메타파일은 처리 시간을 감축하기 위해 압축해제 또는 디코딩되지 않는다. 새로운 CRC 값은 새로운 태그를 목적지 데이터베이스에 전송하기 전에 리포트용 새로운 식별자를 고려하기 위하여 태그 필드에 대해 계산된다. 현재의 데이터베이스로부터의 리포트 리스트는 상술한 방식으로 질의 인터페이스에서 리프레쉬된다.
데이터베이스로부터의 레코드 삭제는 도 10을 참고로 설명된다. 사용자가 이미 데이터베이스를 열며 한 세트의 리포트를 본다고 가정하자. 질의 인터페이스(76)는 하나 이상의 레코드의 사용자 선택을 수신하며, 현재 열린 데이터베이스로부터 선택된 레코드를 삭제하기 위하여 사용자로부터 명령을 수신한다. 선택된 레코드는 질의 인터페이스에 의해 서비스 레이어에 나타난다. 데이터베이스가 열릴 때 사용자에 의해 사용된 인증은 사용자로 검증된다. 데이터베이스는 새로운 인증에 대해 사용자에게 프롬프트한다.
질의 인터페이스는 선택된 레코드를 삭제하기 위해 서비스 레이어에 요구를 낸다. 응답시, 서비스 레이어는 임의의 저장된 커서를 무효화하며, 선택된 리포티 및 페이지에 기초하여 데이터베이스에 발생될 삭제 문장을 필터로서 준비한다. 질의는 메타파일과 레코드를 삭제하기 위해 데이터베이스의 페이지 테이블 상에서 실행된다. 삭제 문장은 선택된 리포트를 사용하여 데이터베이스의 주 테이블에 대해 필터로서 준비된다. 이런 문장은 리포트에 대한 레코드를 삭제하기 위해 주 테이불 상에서 실행된다. 현재의 데이터베이스로부터의 리포트 리스트는 상술한 방식으로 질의 인터페이스에서 리프레쉬된다.
사용자가 이미 데이터베이스를 열고 한 세트의 리포트를 본 후, 사용자는 프린트되고, 사전 관찰되고, 또는 다른 어플리케이션에 전송될 하나 이상의 리포트를 선택한다. 그런 프린팅, 사전 관찰 및 데이터베이스로부터의 리포트 전송은 도 11-13을 참고로 이하 설명된다. 질의 인터페이스(76)는 하나 이상의 레코드의 사용자 선택을 수신하고, 사용자로부터의 프린트 명령, 사전 관찰 명령 또는 선택된 레코드와 연관된 리포트의 전송을 위한 명령을 수신한다. 선택된 레코드는 질의 인터페이스에 의해 서비스 레이어에 나타난다. 선택된 레코드에 대한 메타파일은 질의 인터페이스에 의해 서비스 레이어으로부터 요구된다.
서비스 레이어는 임의의 저장된 커서를 무효화하며, 선택된 리포트 및 페이지를 갖는 질의 문장을 필터로서 준비한다. 질의는 데이터베이스의 메타파일 테이블 상에서 실행된다. 페이지에 대한 모든 레코드가 판독될 때, 일련의 레코드는 재어셈블되고, 디코딩되며 압축해제되며, 페이지에 대한 CRC 값이 인증된다. 각각의 리포트의 페이지 각각에 대한 매타파일은 78로 표시된 바와 같이 임시 파일에 저장된다. 리포트 식별자의 리스트, 페이지 번호 및 메타파일 이름은 질의 인터페이스에 구성되며 복귀된다. 질의 인터페이스는 이하 설명되는 방식으로 명령이 프린트, 사전 관찰 또는 전송되었는지 여부에 따라서 리스트를 처리한다.
명령이 프린트되는 경우, 디스플레이는 운영체계를 사용하는 특정 프린터에 대한 디바이스 콘텍스트에 임의 메타파일을 플레이한다.
명령이 사전 관찰되는 경우, 질의 인터페이스는 도 12를 참고로 이하 상세히 설명된다. 특히, 미리 결정된 이름을 갖는 제어 파일(1200)은 사전관찰될 각각의 리포트의 페이지 각각에 대한 메타파일을 포함하는 임시 파일의 이름 및 태그를 포함하여 생성된다. 질의 인터페이스는 리포트 사전 관찰자(80) 및 분리 프로그램을 낳게 되며, 제어 파일이 리포트를 판독 및 디스플레이하기 위해 순서대로 액세스한다. 리포트 사전 관찰자(80)는 디스플레이용 디바이스 콘텍스트에 대한 메타파일을 플레이함에 의해, 즉 운영 시스템에 대한 플레이 메타파일 명령을 냄에 의해 리포트를 디스플레이한다.
사전관찰자는 사용자에게 디스플레이를 통해 스크롤되며 리포트의 다른 페이지를 보게하는 것을 포함하는 플레이된 메타파일 데이터 상에서 많은 종류의 동작을 수행한다. 사전 관찰자는 사용자에게 리포트에서의 특정된 텍스트의 예를 찾도록한다. 그러나, 메타파일에서 특정 순서의 텍스트에 대한 탐색은 메타파일에서 TEXOUT 명령이 동일 텍스트가 디스플레이될 때 나타나는 것과 동일한 순서로 메타파일에서 일어나지 않는다는 사실에 의해 복잡하게 된다. 따라서, 리포트 사전 관찰자는 순서된 리스트로 각각의 선택된 메타파일에서의 텍스트를 처리하여, 워드가 각각의 메타파일 내에 나타나는 순서로 탐색되게 된다. 그런 순서는 임의의 이전 또는 다음 워드 또는 한 세트의 메타파일들 중에서 및 메타파일에서 식별된 다른 문자 스트링의 발생을 허용한다. 많은 다른 어플리케이션으로부터의 문서는 이런 기술을 사용하여 함께 탐색된ㄴ다.
메타파일에서의 순서화 텍스트는 다음 방식으로 수행된다. 각각의 TEXOUT 명령은 메타파일에서 식별되며, 그 대응하는 좌표가 얻어진다. TEXOUT 명령의 인증은 페이지(즉, 메타파일)에 의해 저장되며, 디스플레이 영역에서의 Y 위치, 및 디스플레이에서의 X 위치에서 저장된다. 소트된 명령은 텍스트 스트링의 레코드의 이중 링크된 리스트 및 디스플레이에서의 텍스트 스트링의 위치로 변환된다. 함께 닫아질 임의의 태그 스트링은 이런 구조로 연결된다. 임의의 효율적인 소팅 알고리즘은 이런 소트 정보를 수행하는데 사용된다. 예컨데, 삽입 소팅이 사용된다.
질의 인터페이스와 리포트 사전 관찰자 모두는 사용자로 하여금 메타파일(78)(또는 사전 관찰자의 경우에서 또는 메타파일(82)의 선택된 부분에서)다른 어플리케이션으로 전송되게 한다. 전송 동작은 또한 모든 그래픽을 포함하는, 텍스트만 저장하는, 또는 테이블(도 17을 참고로 이하 상세히 설명됨)로 변환될 텍스트를 포함하는 리포트를 전송한다. 이런 동작은 도 13을 참고로 이하 설명된다. 이런 동작은 데이터가 선택되며 다른 어플리케이션 동안 인증될 문서로 삽입되게 한다.
질의 인터페이스로부터 리포트를 송신하는 과정은 사전검토하는 것과 유사하다. 또한, 사용자는 메타파일이 송신될 목적 어플리케이션 이름을 지시받는다. 제어파일(1300)은 메타파일 이름, 목적 어플리케이션 이름 및 목적 어플리케이션에서 붙여넣기가 어떻게 실행되는지를 정의하는 한 세트의 키조작으로 생성된다. "송신(Send)"이라 불리는 개별 컴퓨터 프로그램(1302)은 리포트 미리보기 대신 수행되는데, 이것은 목적 어플리케이션(84) 내에서 쉽게 열리는 문서 내에서 리포트를 붙여넣기 위해 후술될 방법으로 제어파일(1300) 상에서 동작한다.
"송신" 프로그램은 또한 리포트 미리보기(80)에 의해 수행될 수도 있다. 사용자는 목적 어플리케이션 이름을 제공한다. 리포트 미리보기는 후술될 방법으로, 사용자의 선택에 의거한 새로운 임시 메타파일(82)을 생성한다. 제어파일(1304)는 생성된 질의 인터페이스 및 동일한 방법으로 수행된 "송신" 프로그램(1302)에 의해 생성된 상기 제어파일(1300)과 유사하다.
목적 어플리케이션에 전달할 송신프로그램으로 적합한 키조작은 여러 방법으로 결정될 수 있다. 예를 들어, 어플리케이션의 메뉴들은 대응하는 키조작을 확인하기 위한 명령어 "붙여넣기"를 위해 탐색될 수도 있다. 또한, 다양한 어플리케이션을 위한 키조작은 미리 결정되어 송신 프로그램에 의해 접근하기 쉬운 파일 내에 저장될 수도 있다. 디폴트 값으로써, 표준 윈도우 어플리케이션용 사용자 인터페이스에서 붙여넣기 기능을 위한 키조작은 Ctrl-V이고, 이러한 키조작 역시 사용될 수 있다.
지금부터 리포트 미리보기는 일부 메타파일에 대한 사용자 선택에 의거하여 어떻게 새로운 메타파일을 생성할 것인가에 대해 기술할 것이다. 사용자 선택은 일반적으로 메타파일이 디스플레이된 영역에서 직사각형을 정의하는 좌표들에 의해 표현된다. 그 때 메타파일 각각의 명령어는 정의된 좌표들로 비유된다. 관련된 좌표를 갖지 않는 임의의 명령어들은 자동적으로 새로운 메타파일에 위치한다. 규정된 좌표의 외부에서 디스플레이 정보를 생산하는 임의의 명령어는 파기된다. 규정된 좌표 내부에서 디스플레이 정보를 생산하는 임의의 명령어는 유지된다. 어떤 경우에서, 명령어는 규정된 좌표의 내부 및 외부 모두에서 디스플레이 정보를 생산할 수도 있다. 라인 세그먼트 및 비트 맵과 같은 이러한 명령어는 공지된 기술을 사용하여 규정된 좌표 내에서 제지되도록 쉽게 수정될 수 있다. 메타파일 명령어의 결과 세트는 그 파일명이 제어파일 내에 리스트된 임시 파일이라는 곳에 저장된다.
이제 "송신" 프로그램(1302)이 기술될 것이다. 이 프로그램은 우선 미리 결정된 이름을 사용하여 제어파일(1300 혹은 1304)을 판독한다. "송신" 프로그램 (1302)은 그것이 질의 인터페이스(76)에 의해 야기되는지 혹은 리포트 미리보기 (80)에 의해 야기되는지를 알 필요가 없다. 제어파일 내에서 규정된 임의의 32-비트 메타파일(EMF)은 메타파일 프로세서(1306)에서의 요청을 통해 16-비트 메타파일(WMF; 1310)로 변환될 수도 있다. 변환은 또한 단지 EMF 파일만 클립보드 상에 위치할 경우 윈도우 GDI-32에 의해 자동적으로 실행될 수도 있다. 메타파일 프로세서(1306)에 의해 실행된 변환은 "컬러 스페이스(color space)" 레코드, "텍스트아웃(TEXTOUT)" 레코드(후술됨)에서 임의의 상호문자간 간격 및 불합리한 파라미터 값을 포함하는 임의의 모디파이 "월드 트랜스형태(modify world transform)" 레코드를 삭제한다.
윈도우 95에 의해 생성된 클리핑 레코드 역시 수정될 수 있다. 특히, 뷰포트(viewport) 및 윈도우 기원은 현재값(current values)을 유지하기 위해 추적된다. 클리핑 영역의 경계는 공지된 기술을 사용하여, 전류 뷰포터 및 윈도우 기원을 설명하기 위해 조정된다. 또한 메타파일이 플레이될 때 어떤 클리핑 레코드 때문에 텍스트가 부정확하게 숨겨질 수 있다. 텍스트 레코드에 영향을 미치는 임의의 클리핑 레코드는 필요하다면 텍스트가 부정확하게 숨겨지는 것을 막기 위해 수정되거나 제거된다.
16-비트 및 32-비트 메타파일 둘 다 운영 시스템이라 칭하는 기능을 만드는 클립보드 배치(1312)를 통해 "클립보드(1308)" 상에 놓인다. 클립보드는 데이터가 일시적으로 저장될 수 있는 그리고 데이터가 임의의 어플리케이션에 의해 판독될 수 있는 메모리 영역이다. 클립보드 상에 데이터를 위치시키기 위해, "잘라내기" 혹은 "복사하기"와 같은 명령어가 사용된다. "붙여넣기" 기능은 일반적으로 어플리케이션에 의해 쉽게 처리되는 문서 내에서 현재 위치에 데이터를 위치시키기 위해 클립보드로부터 데이터를 판독하는 대부분의 어플리케이션에 의해 제공된다.
그 때 송신 프로그램은 데이터를 키조작으로부터 그것의 현재 문서로 붙여넣기위해 어플리케이션을 발생시키도록 작동하는 시스템을 통해 목적 어플리케이션에 키조작을 송신한다.
도 13과 관련하여 기술된 송신 동작은 도시된 실시예에 한정되는 것이 아니라 여러 방법으로 제공될 수 있다. 예를 들어, 질의 인터페이스 및 리포트 미리보기는 주어진 어플리케이션용 키조작의 세트를 결정하는 것으로 상술된다. 또한 이러한 키조작은 제어 파일(1300 혹은 1304)을 통하지 않고 직접적으로 송신 프로그램에 의해 액세스되거나 결정될 수도 있다. 또한, 송신 프로그램(1302)의 전체는 질의 인터페이스(76) 및 리포트 미리보기(80)로 구현될 수도 있다. 또한 송신 동작은 소스 어플리케이션이 소스 어플리케이션의 메뉴 혹은 툴바에 새로운 기능을 추가하기 위해 "플러그-인" 매크로 혹은 라이브러리를 진전시키기 위해 세 부분일 수 있다면 하나의 소스 어플리케이션으로부터 다른 목적 어플리케이션으로 메타파일을 송신하기 위해 제공될 수도 있다. 그런 능력을 가진 소스 어플리케이션의 한 예로는 마이크로소프트사의 워드가 있다. 그런 어플리케이션에서, 미리보기 혹은 질의 인터페이스 및 송신 프로그램의 결합된 기능성은 메타파일 데이터를 목적 어플리케이션으로 직접적으로 전송하기 위한 소스 어플리케이션에 의해 야기될 수 있을 것이다.
상술된 바와 같이, 스풀 파일(spool files; 98)은 트루(true) 메타파일이 아니다. 예컨대, 프린팅을 통해 어플리케이션에 응하여 운영 시스템에 의해 제공되는 시각적 형태의 데이터 역시 변형될 때, 예컨대 스케일링 되거나 순환될 때, 왜곡될 수도 있다. 그러한 왜곡은 일반적으로 예컨대, 프린트 명령에서 응하는 운영 시스템의 출력이 일반적으로 변형되도록 의도되지 않다는 사실에 기인한다. 어플리케이션은 일반적으로 운영 시스템 출력에 응하는 프린터의 출력이 시각적 형태의 데이터와 조화하도록 구현된다. 일반적으로, 어플리케이션은 왜곡 없이 스케일링될 수 있는 프린터에 명령어가 송신되는지 아닌지가 테스트되지 않는다. 따라서, 운영 시스템(54)에 의한 시각적 형태의 데이터(도 1에 도시됨)는 메타파일이 왜곡되지 않고 정확한 형태로 변형될 수 있도록 변환하기 위해 필요할 수도 있다.
그러한 변환은 도 14 내지 16과 관련하여 기술될 것이며 일예로 윈도우 운영 시스템 및 윈도우 메타파일을 사용하여 다시 기술될 것이다. 이제 도 14를 참조하면 스풀파일(98)은 단계 800에서 메타파일 프로세서(102)에 의해 수신된다. 단계 802에서 메타파일 프로세서는 새로운 메타파일이 저장될 스풀파일 내에서 각 페이지를 위해 새로운 파일을 연다. 각각의 레코드는 버전 정보를 제공하기 위해 단계 804에서 이러한 새로운 파일로 삽입된다. 예를 들어, 어플리케이션이 프린트되었던 운영 시스템 및 메타파일 프로세서 프로그램의 버전이 저장될 수도 있다. 이러한 정보는 메타파일이 버전 정보에 따라 다르게 처리되는 것을 허용한다.
윈도우에서 이용가능한 "DEVMODE" 구조는 단계 806에서 메타파일 내의 각 레코드에 복사되고 저장된다. 이러한 데이터 구조는 페이지 사이즈, 해상도 (resolution) 및 오리엔테이션을 포함하는 프린터 및 프린터 잡(job)의 모든 특성들을 기술한다. 다른 운영 시스템으로부터 이용가능한 임의의 유사 정보 역시 저장될 수도 있다. 이러한 레코드는 정보가 스풀러 과정으로부터 수신된 메타파일의 헤더에 정확하고 완전하게 제공된다면 생략될 수도 있다. 단계 808에서, 스풀파일로부터 얻어진 페이지를 위한 메타파일은 아래 보다 상세히 기술된 방법에 의해, 마이크로소프트사에 의해 제공되는 이러한 데이터 포맷을 위한 설명서에 따라 그것의 스케일가능성(scalability)을 향상시키기 위한 페이지를 위해 반전된 메타파일로 변환된다. 이러한 단계 동안, 메타파일 프로세서는 임의의 최초 명령어, 수정된 명령어 혹은 새로운 명령어를 포함하는 코멘트 레코드를 출력파일에 삽입한다. 최초 명령어를 유지하는 것은 다른 포맷으로의 변환을 위해 최초의 것을 재구성하는 것을 용이하게 한다.
단계 810에 있어서, 메타파일 프로세서는 엔드-오브-파일 코멘트 레코드를 강화된 메타파일 데이터의 끝에 삽입한다. 엔드-오브-파일 코멘트 레코드는 다른 메타파일 내에 포함된 메타파일들 간에 임의의 경계를 형성하기 위해 사용된다. 그러한 메타파일은 "축소(nested) 메타파일"로 생각될 수 있다. 처리될 때, 메타파일은 그것이 생성되었던 운영 시스템 플랫폼 및 어플리케이션에 의존하여 다른 속성 및 특성을 가질 수 있다. 예를 들어, 윈도위 NT에서 생성된 메타파일은 윈도우 95에서 생성된 것들과 다른 특성을 가질 수 있다. 적절한 처리를 확실히 하기 위해, 각 축소 파일의 시작 및 끝 점은 단계 804 및 810에서 삽입된 레코드에 의해 제공된다.
단계 812에 있어서, 메타파일 프로세서는 새로운 메타파일을 포함하고 파일 (105) 안에 파일명을 저장한 파일을 제공한다.
이제 단계 808에서 실행된 메타파일에서 명령어의 변환이 보다 상세히 기술될 것이다. 다른 운영 시스템을 위한 메타파일 타입들 간의 차이점으로 인해 다양한 수정이 실시되고, 일반적으로 다른 어플리케이션에 의해 프린트됨으로써 생성된 메타파일은 축소가 가능하도록 디자인 되지 않기 때문에, 종종 수정되지 않을 수도 있다.
폰트 생성 혹은 다른 생성 명령과 같이, 메타파일이 플레이 될 때 전위 리소스 리크를 생성하는 명령어는 식별된다. 이러한 명령어는 리소스가 적절히 해방되는 것을 보장하기 위해 실시될 수도 있다.
일부 어플리케이션은 음의 Y 축 방향 및 호환성이 없는 매핑 모드처럼, 스케일링 되거나 회전되거나 혹은 변형된 텍스트의 적절한 디스플레이와는 호환성이 없는 좌표 변형 공간에서 텍스트를 디스플레이하기 위해 시도하는 메타파일을 생성한다. 그 결과 텍스트는 수직 및/혹은 수평 방향에서 부정확하게 스케일링되거나 부정확하게 오리엔트된다. 메타파일 프로세서는 음의 Y축 혹은 호환성이 없는 매핑 모드로 명령어를 식별함으로써 이러한 상황을 검출한다. 레코드가 텍스트를 디스플레이하기 전에, 메타파일 레코드는 임시적으로 좌표 변형 공간을 수정하기 위해 추가된다. 새로운 좌표 변형은 공지된 기술을 사용하여, 규정된 변형, 위치가 정해지기 위한 텍스트의 좌표, 규정된 폰트 오리엔테이션, 국면비(aspect ratio) 및 매핑 모드로부터 결정된다. 좌표 변형 공간은 의도된 위치, 오리엔테이션 및 국면비를 보존하기 위해 수정된다. 다른 메타파일 레코드는 그것의 원래 위치에 좌표 변형 공간을 리셋하기 위해, 텍스트를 디스플레이하는 레코드 이후에 추가된다.
윈도우 NT에서 시행되는 어플리케이션에 의해 생성되는 일부 메타파일들은 "세트 미터 리미트"에 레코드를 포함한다. 메타파일 프로세서는 윈도우 95 GDI-32에 의해 인지되지 않기 때문에 이러한 레코드들을 제거한다. 결과적인 이미지에 대한 효과는 무시할 수 있다.
일부 메타파일은 컬러 팔레트를 포함하는 16-비트, 24-비트, 혹은 32-비트 컬러 비트맵을 포함한다. 메타파일 프로세서는 컬러 팔레트가 필요하지 않고 디스플레이 될 때 비트맵의 왜곡을 야기시키므로 컬러 팔레트를 제거함으로써 비트맵 레코드를 수정한다.
일부 메타파일은 텍스트 위치가 뷰어 프로그램에서 부정확하게 결정되게 하고 텍스트가 일부 장치에서 프린트될 때 사라지게 하는 현재 커서 위치의 비율로 배열된 텍스트를 디스플레이한다. 메타파일 프로세서는 상대적인 좌표보다 절대적인 좌표에 의거하여 배열을 규정하기 위해 텍스트 배열 레코드를 바꾸고, 그 때 정확한 절대적인 좌표를 포함하기 위해 텍스트를 디스플레이 하는 각각의 메타파일 레코드를 수정하는데, 이는 현재 커서위치로부터 공지된 기술을 사용하여 결정될 수도 있고, 윈도우라 불리는 기능을 통해 얻을 수도 있다.
일반적으로 폰트 및 텍스트 명령어는 도 15A-B 및 16과 관련하여 후술될 방법으로 그들의 축소를 향상시키도록 처리된다.
폰트 처리는 도 15A 및 15B에 도시된다. 일부 어플리케이션은 비-스케일러블(non-scalable) 폰트를 사용한 메타파일을 생성한다. 이러한 메타파일은 한장의 종이에 프린트될 때 정확해 보이지만 프린와 다른 스케일링에서 혹은 프린터 이외의 장치 상에서 디스플레이될 때 왜곡된다. 메타파일 프로세서는 이러한 왜곡을 막기 위해 스케일러블 폰트를 규정하기 위해 메타파일 레코드를 추가한다. 단계 1602 내지 1608에 있어서, 일련의 결정 포인트는 트루타입 폰트가 메타파일 내에서 사용되든 아니든 결정한다. 단계 1602에 있어서, 어떤 폰트도 메타파일 내에서 규정되지 않는다면, 그 때 디폴트 트루타입 폰트가 선택된다.(단계 1610) 단계 1604에 있어서, 시스템 폰트가 선택된다면, 그 때 트루타입 폰트는 그것을 대체하기 위해 선택된다.(단계 1610) 단계 1606에 있어서, 비트맵 폰트가 선택된다면, 그 때 트루타입 폰트는 비트맵 폰트를 대체하기 위해 선택된다.(단계 1610) 단계 1608에 있어서, 어플리케이션이 윈도우 선택 오브젝트 함수(Window Select Object function)를 통해 폰트(종종 스톡폰트라 불리는)를 선택한다면, 그 때 트루타입 폰트는 선택 물체를 통해 선택된 폰트를 대체하도록 위해 선택될 것이다.(단계 1610) 단계 1602 내지 1610이 완료된 후에, 메타파일 내에서 두개의 플래그가 단계 1612에서 사용되는 트루타입 폰트의 품질 증명만을 지시하도록 트루(true)로 세팅된다. 단계 1614에 있어서, 폰트 사이즈가 규정되지 않는다면, 그 때 디폴트 폰트 사이즈가 선택된다.(단계 1616) 사용자는 미리 디폴트 값 이외의 폰트 사이즈 혹은 페이스 명을 선택할 수도 있다. 이러한 값들은 디폴트 값의 위치에서 사용될 수도 있다. 단계 1618에 있어서, 축 로테이션 혹은 폰트 로테이션이 충돌된다면, 출력 그래프가 왜곡 될 수 있으며, 로테이션의 새로운 값들 혹은 로테이션들은 상술된 방법으로, 단계 1620에서 계산된다.
텍스트 프로세싱은 이제 도 16과 관련하여 기술될 것이다. 일부 어플리케이션은 상호문자 공간을 규정하지 않는 텍스트 레코드를 포함하는 메타파일을 생성한다. 메타파일 프로세서는 적합한 상호문자 공간 값을 계산하고 이러한 과정을 사용하여 텍스트 레코드를 수정한다. 각 메타파일 명령어는 그것이 텍스트 아웃 (TEXTOUT) 레코드인지를 결정하기 위해 평가된다. TEXTOUT 레코드는 문자 공간 값의 어레이를 포함함으로써 규정된다. 즉, 프린트될 문자열(string) 내에서 모든 문자에 대해, 그것과 다음 문자 사이에 남아있을 공간의 양을 지시하도록 임의의 값이 공급된다. 이러한 거리 값은 결여될 수도 있다. 따라서, 거리 값 없이 TEXTOUT 레코드가 충돌될 때, 정확한 거리 값이 단계 1704, 예컨대 GDI-32라 불리는 기능에 의해 얻어진다. 단계 1712에 있어서, 오래된 TEXTOUT 레코드는 새롭게 계산된 데이터로 대체된다. 새로운 레코드는 그것이 부가된 레코드임을 지시하기 위해 부가적인 필드를 포함할 수도 있다.
부가적인 텍스트 프로세싱 역시 메타파일 내에서 임의의 텍스트를 인텍스 하기 위해 그리고 데이터베이스 내에서 리포트를 위한 부가적인 태그 정보로써 인덱스를 저장하기 위해 실행될 수도 있다. 이러한 인덱스는 또한 이중으로 링크된 리스트로 표현될 수도 있고 그 때 미리보기 내에서 텍스트 탐색을 허가하기 위해 상술된 리포트 미리보기(80)에 의해 사용될 수 있다.
텍스트 프로세싱의 다른 형태가 수행될 수도 있지만, 리포트 미리보기(80)에 의한 이러한 경우에서는 메타파일로부터 탭-디리미티드 데이터와 같은 문자 디리미티드 데이터로 TEXTOUT 명령어에 의해 생성되는 것과 같은 텍스트 데이터의 변환이 있는데, 이 때 테이블 혹은 스프레드시트로 변환될 수도 있다. 도 17과 관련하여 기술된 이러한 과정은 TEXTOUT 명령어 내에 있는 메타파일로부터 텍스트 데이터를 포함하지만 제한되지는 않는 텍스트 데이터의 임의의 형태를 위해 사용될 수도 있다. 과정은 사용자에 의해 규정된, 예컨대, 디스플레이 상에 디스플레이된 텍스트를 선택할 경우 사용자에 의해 생성되는 수신 선택 좌표를 수반한다. 선택 좌표는 일반적으로 디스플레이 영역 내에서 직사각형 영역을 정의한다. 선택 좌표가 단계 1800에서 수신된 이후에, 선택된 좌표 내에 있는 텍스트 내용은 단계 1802에서 확인된다. 이러한 단계는 각 메타파일 명령어를 플레이 하고 선택 직사각형 영역에서 각 명령어의 좌표를 비교하거나, 혹은 후술될 2중으로 링크된 리스트와 같은 데이터 구조 내에 있는 좌표를 시험함으로써 수행될 수 있다.
그 때 선택된 텍스트에 의해 정의된 열(columns)이 탐지된다. 이러한 열은 부울값(Boolean values) 어레이의 일례일 수 있는 선택된 직사각형 영역을 위한 열 탐지 데이터 구조를 초기화함으로써 우선 탐지되는데, 여기서 각 부울값은 문자열에서 디스플레이 혹은 문자 상의 수평 논리 좌표에 상응한다. 이러한 어레이는 일반적으로 테이블의 수평 치수를 나타낸다. 이러한 어레이는 임의의 "화이트 스페이스" 혹은 선택된 직사각형 영역의 맨 위에서 바닥까지 확장하는 텍스트의 부재를 탐지한다. 각 명령어 혹은 선택 좌표 내에 있는 텍스트열에 있어서, 이러한 열 탐지 데이터 구조는 단계 1806에서 수정된다. 특히, 부울값의 배열에서 각 좌표 혹은 문자를 위한 부울값은 텍스트가 선택 직사각형 영역 내에서 식별된 임의의 텍스트 내용으로부터 좌표에 나타난다면 트루로 세팅된다. 단계 1806의 마지막 결과는 하나 혹은 그 이상의 인접한 오류값의 각 발생이 컬럼(column) 경계를 지시한다는 것이다. 각 텍스트 아이템에 대해 Y 좌표를 사용하는 단계 1808에 있어서, 각 열 (row)에 대한 텍스트가 식별된다. 탭 문자에 의해 분리되고 테이블 각각의 열(row)에 대해 끝에서 수송복귀하는 셀값의 문자열, 예컨대 ASCII 문자열,이 그 때 세워진다. 주어진 열 상의 각 텍스트 아이템에 있어서, 그것의 X좌표는 그것이 속한 컬럼에서 결정되기 위해 컬럼 탐지 구조와 비교된다. 현재 카운트는 각 열에 대해 삽입된 탭의 수로 유지된다. 각 셀이 추가됨에 따라, 그것을 앞서는 정확한 수의 탭 문자가 계산될 수 있다. 이러한 연산은 필요로 되는 여분의 탭을 삽입함으로써 비어있는 셀을 정확하게 계산한다. 탭 구획 텍스트는 단계 1810에 있어서 이러한 연산을 사용하여 텍스트 명령어로부터 생성된다. 탭 구획 텍스트로부터, 다른 어플리케이션은 그러한 텍스트를 테이블로 쉽게 변환할 수 있고, 스프레드시트는 스프레드시트에서 각 셀에 값들을 삽입할 수 있다.
상술된 바와 같이 시스템을 제공하는 것은, 어플리케이션으로부터 시각적 형태의 데이터의 표준 포맷이 데니터베이스에 포획되고, 데이터를 생성하는 어플리케이션에 독립적인 방법으로 주로 조직, 운영, 접근되기위해 지리적으로 분산되는 복수의 다른 컴퓨터 프로그램으로써 복수의 다른 사용자에 의해 시간의 어떤 주기에 걸쳐 생성되고 사용되고 공유되는 데이터를 허가한다. 또한 데이터베이스는 다른 어플리케이션에 디스플레이, 프린트 혹은 카피되기 위해 탐색 및 판독될 수 있는 하나의 포맷 내에 있는 데이터에 중심 저장소를 제공한다. 하나의 표준 포맷의 사용은 데이터가 보여진 데이터 최초 어플리케이션 없이 보여지도록 허가한다. 또한 사용자는 창설된 데이터로부터 어플리케이션에 접근할 필요 없이 데이터의 복수 소스로부터 복합 문서를 생성할 수 있다.
기술된 몇가지의 실시예에 있어서, 앞서 말한것은 단순히 설명을 위한 것으로 한정적이지는 않으며 단지 예시를 통해 표현되었다는 것을 당업자는 명백히 알 알 것이다.
예를 들어, 프린트 명령어는 대부분의 어플리케이션이 조작하고 디스플레이하는 시각적 형태의 데이터를 프린트하는 능력을 적어도 가지고 있기 때문에 앞서 말한 실시예에서 사용된다. 어플리케이션에서 공통적으로 사용되는 다른 기능은, "잘라내기" 및 "붙여넣기" 시퀀스 예컨대, 윈도우에서 "클립보드" 혹은 "오브젝트 링크 및 내장(OLE) 서버"와 같은 임시 저장에서 하나의 어플리케이션으로부터 다른 표준 포맷으로 데이터를 전송하기위한 연산 시스템이라 불리는 기능을 수반한다. 이러한 데이터는 다른 어플리케이션에 의해 임시 저장으로부터 검색될 수 있다. 여러가지 운영 시스템 기능은 표준 포맷 데이터로의 접근을 제공하기 위해 사용될 수 있는데 이 때 데이터베이스에 저장될 수 있다.
질의 인터페이스 혹은 리포트 미리보기로부터 다른 어플리케이션으로 리포트를 전송하기 위한 상술된 송신 동작 역시 소스 어플리케이션으로부터 데이터를 데이터베이스에 포획하는 목적 어플리케이션에 데이터가 위치하도록 사용될 수 있다.
다른 운영 시스템 역시 사용될 수 있다. 예를 들어, 유닉스를 사용하여, 포스트스크립 데이터는 어플리케이션으로부터 포획될 수 있고 데이터베이스 내에 저장될 수 있다. 포스트스크립 데이터는 메타파일 포맷으로 변환될 수도 있다. 또한, 프린터 구동기는 임의의 연산 시스템을 위해 준비될 수 있다.
이들 및 다른 실시예는 본 발명의 사상에 포함되는 것으로서 고려되어야 한다는 것은 당업자에게 자명하다.

Claims (17)

  1. 컴퓨터 상에서 실행된 어플리케이션으로부터 가시적 형태의 정보를 데이터베이스로 캡쳐(capturing)하기 위한 컴퓨터 실행 프로세스에 있어서,
    상기 어플리케이션으로부터 가시적 형태의 데이터를 수신하는 단계;
    상기 가시적 형태의 데이터에 대응하는 태그를 수신하는 단계; 및
    상기 가시적 형태의 데이터를 벡터 이미지로서 상기 데이터베이스에 저장하고, 상기 태그를 상기 데이터베이스에 저장하는 단계
    를 포함하는 것을 특징으로 하는 컴퓨터 실행 프로세스.
  2. 제1항에 있어서, 상기 데이터베이스는,
    상기 가시적 형태의 데이터에 대응하는 태그 및 상기 가시적 형태의 데이터에 대한 참조를 저장하기 위한 제1 테이블; 및
    상기 가시적 형태의 데이터를 상기 가시적 형태에 대한 참조와 함께 벡터 이미지로서 저장하기 위한 제2 테이블
    을 포함하는 것을 특징으로 하는 컴퓨터 실행 프로세스.
  3. 컴퓨터 상에서 실행된 어플리케이션으로부터 가시적 형태의 데이터를 저장하기 위한 데이터베이스에 있어서,
    상기 가시적 형태의 데이터에 대응하는 태그 및 상기 가시적 형태의 데이터에 대한 참조를 저장하기 위한 제1 테이블; 및
    상기 가시적 형태의 데이터를 상기 가시적 형태의 데이터에 대한 참조와 함께 벡터 이미지로서 저장하기 위한 제2 테이블
    을 포함하는 것을 특징으로 하는 데이터베이스.
  4. 하나 또는 그 이상의 컴퓨터 상에서 실행된 어플리케이션으로부터 가시적 형태의 데이터가 벡터 이미지로서 저장되는 데이터베이스를 액세스하기 위한 컴퓨터 시스템에 있어서,
    하나 또는 그 이상의 벡터 이미지를 식별하기 위해 상기 데이터베이스를 검색하는 수단;
    상기 식별된 벡터 이미지와 관련된 태그에 따라서 상기 식별된 벡터 이미지를 저장하는 수단;
    사용자가 하나 또는 그 이상의 상기 식별된 벡터 이미지를 선택하는 것을 허용하는 수단; 및
    상기 선택된 벡터 이미지를 표시하는 수단
    을 포함하는 것을 특징으로 하는 컴퓨터 시스템.
  5. 제4항에 있어서, 상기 데이터베이스는,
    상기 가시적 형태의 데이터에 대응하는 태그 및 상기 가시적 형태의 데이터에 대한 참조를 저장하기 위한 제1 테이블; 및
    상기 가시적 형태의 데이터를 상기 가시적 형태에 대한 참조와 함께 벡터 이미지로서 저장하기 위한 제2 테이블
    을 포함하는 것을 특징으로 하는 컴퓨터 시스템.
  6. 제4항에 있어서,
    상기 표시된 벡터 이미지를 스케일링하여 상기 스케일된 벡터 이미지를 다시 표시하기 위한 수단을 더 포함하는 것을 특징으로 하는 컴퓨터 시스템.
  7. 제4항에 있어서,
    상기 선택된 벡터 이미지에서 텍스트를 검색하기 위한 수단을 더 포함하는 것을 특징으로 하는 컴퓨터 시스템.
  8. 가시적 형태의 데이터의 선택된 부분을 제1 어플리케이션에서 제2 어플리케이션으로 송신하기 위한 컴퓨터 실행 프로세스에 있어서,
    상기 가시적 형태의 데이터의 선택된 영역의 지시를 수신하는 단계;
    상기 제2 어플리케이션의 지시를 수신하는 단계;
    상기 제2 어플리케이션으로 데이터를 붙여넣기 위한 상기 제2 어플리케이션에서의 키조작을 결정하는 단계;
    상기 가시적 형태의 데이터의 선택된 영역을 나타내는 데이터를 결정하는 단계;
    상기 제2 어플리케이션이 그로부터 데이터를 붙여넣는 메모리 영역에 상기 결정된 데이터를 전송하는 단계; 및
    상기 결정된 키조작을 상기 제2 어플리케이션으로 송신하는 단계
    를 포함하는 것을 특징으로 하는 컴퓨터 실행 프로세스.
  9. 표 구조에 삽입하기 위해 가시적 형태의 텍스트 데이터를 문자 구획된(delimited) 텍스트 데이터로 변환하기 위한 컴퓨터 실행 프로세스에 있어서,
    상기 가시적 형태의 데이터의 선택된 영역의 지시를 수신하는 단계;
    텍스트의 모든 행에 대해서 수평 연장을 따라서 상기 선택된 영역내에 텍스트의 존재를 지시하기 위해 초기화된 데이터를 변조하는 단계;
    텍스트의 각 행에 대해서, 상기 행 내의 텍스트 및 상기 행 내에서 식별된 열 경계에 따라서 문자 구획된 데이터를 발생하는 단계
    를 포함하는 것을 특징으로 하는 컴퓨터 실행 프로세스.
  10. 텍스트를 특정화하는 명령 및 상기 텍스트의 위치에 대한 수평 및 수직 좌표를 포함하는 벡터 이미지 내의 텍스트를 검색하기 위한 컴퓨터 실행 프로세스에 있어서,
    상기 수직 좌표에 따라서 상기 벡터 이미지 내의 명령을 정렬(sorting)하는 단계;
    상기 수평 좌표에 따라서 상기 벡터 이미지 내의 정렬된 명령을 순서화하는 단계; 및
    상기 순서화된 명령으로부터 텍스트의 순서화를 나타내는 리스트 구조를 발생시키는 단계
    를 포함하는 것을 특징으로 하는 컴퓨터 실행 프로세스.
  11. 데이터베이스 액세스를 제어하기 위한 서비스 레이어에 있어서,
    상기 데이터베이스에 데이터를 저장하라는 요청에 응답하여 동작하고,
    상기 데이터를 인코딩하는 수단,
    상기 데이터에 대한 에러 체크 계산을 수행하는 수단, 및
    상기 인코딩된 데이터 및 에러 체크 계산의 결과를 데이터베이스에 저장하기 위한 수단; 및
    상기 데이터베이스로부터 데이터를 판독하라는 요청에 응답하여 동작하고,
    상기 판독 데이터를 디코딩하는 수단,
    상기 판독 데이터에 대한 에러 체크 계산을 수행하는 수단,
    상기 판독 데이터의 에러 체크 계산의 결과를 상기 저장된 데이터에 대하여 수행된 에러 체크 계산의 저장된 결과와 비교하여 불일치를 식별하는 수단, 및
    상기 디코딩된 판독 데이터, 및 상기 저장된 데이터와 판독 데이터 사이에서 식별된 불일치의 지시를 제공하는 수단
    을 포함하는 것을 특징으로 하는 서비스 레이어.
  12. 제11항에 있어서, 상기 데이터베이스는,
    어플리케이션으로부터의 가시적 형태의 데이터에 대응하는 태그 및 상기 가시적 형태의 데이터에 대한 참조를 저장하기 위한 제1 테이블; 및
    상기 가시적 형태의 데이터에 대한 참조를 갖는 벡터 이미지로서 상기 가시적 형태의 데이터를 저장하기 위한 제2 테이블을 포함하는 것을 특징으로 하는 서비스 레이어.
  13. 복수의 컴퓨터 상에서 실행된 복수의 서로 다른 어플리케이션으로부터 가시적 형태의 데이터를 복수의 컴퓨터에 액세스 가능한 데이터베이스로 저장하기 위한 컴퓨터 시스템에 있어서,
    상기 가시적 형태의 데이터를 상기 가시적 형태의 데이터를 식별하는 대응 태그로 저장하기 위한 데이터베이스;
    상기 복수의 서로 다른 어플리케이션 중 하나로부터 상기 가시적 형태의 데이터를 수신하기 위한 제1 입력, 상기 가시적 형태의 데이터에 대응하는 태그를 수신하기 위한 제2 입력, 및 상기 가시적 형태의 데이터를 벡터 이미지 및 대응 태그로서 상기 데이터베이스로 향하게 하는 출력을 갖는 상기 어플리케이션을 실행하기 위한 복수의 컴퓨터 각각의 프로세서; 및
    상기 데이터베이스에 대한 질의에 응답하여 상기 태그 및 가시적 형태의 데이터를 상기 데이터베이스로부터 액세스하기 위한 복수의 컴퓨터 중 하나에 대한 제1 어플리케이션
    을 포함하는 것을 특징으로 하는 컴퓨터 시스템.
  14. 제13항에 있어서,
    상기 데이터베이스로부터 복원된 가시적 형태의 데이터를 포함하는 문서를 생성하고, 상기 생성된 문서를 상기 프로세서를 사용하여 상기 데이터베이스에 저장하기 위한 제2 어플리케이션을 더 포함하는 것을 특징으로 하는 컴퓨터 시스템.
  15. 제13항에 있어서, 상기 데이터베이스는,
    상기 가시적 형태의 데이터에 대응하는 태그 및 상기 가시적 형태의 데이터에 대한 참조를 저장하기 위한 제1 테이블; 및
    상기 가시적 형태의 데이터를 상기 가시적 형태의 데이터에 대한 참조와 함께 벡터 이미지로서 저장하기 위한 제2 테이블
    을 포함하는 것을 특징으로 하는 컴퓨터 시스템.
  16. 벡터 이미지내의 텍스트의 스케일링을 할 수 있도록 벡터 이미지를 처리하기 위한 컴퓨터 실행 프로세스에 있어서,
    텍스트에 대응하는 상기 벡터 이미지내의 명령을 식별하는 단계; 및
    상기 식별된 명령내의 특정화된 폰트를 스케일링 가능한 폰트로 변환하는 단계
    를 포함하는 것을 특징으로 하는 컴퓨터 실행 프로세서.
  17. 컴퓨터 상에서 실행되는 어플리케이션으로부터 데이터베이스에 저장된 가시적 형태의 데이터로부터 복잡한 문서를 생성하기 위한 컴퓨터 실행 프로세스에 있어서,
    상기 어플리케이션으로부터 상기 가시적 형태의 데이터를 수신하고,
    상기 가시적 형태의 데이터에 대응하는 태그를 수신하여,
    상기 가시적 형태의 데이터를 벡터 이미지로서 데이터베이스에 저장하고 상기 태그를 데이터베이스에 저장하고,
    상기 어플리케이션으로부터의 가시적 형태의 정보를 상기 데이터베이스로부터 복원하고,
    상기 데이터베이스로부터 복원된 상기 가시적 형태의 정보로부터 복잡한 문서를 생성함으로써,
    가시적 형태의 정보를 상기 어플리케이션으로부터 데이터베이스로 캡쳐하는 단계; 및
    상기 어플리케이션으로부터 상기 가시적 형태의 복잡한 문서를 수신하고,
    상기 가시적 형태의 복잡한 문서에 대응하는 태그를 수신하여,
    상기 가시적 형태의 복잡한 문서를 벡터 이미지로서 데이터베이스에 저장하고 상기 태그를 데이터베이스에 저장함으로써,
    상기 가시적 형태의 복잡한 문서를 데이터베이스에 캡쳐하는 단계
    를 포함하는 것을 특징으로 하는 컴퓨터 실행 프로세스.
KR1020007008562A 1998-02-04 1999-01-28 어플리케이션으로부터의 시각적 형태의 정보를 데이터베이스에 저장하고 데이터베이스로부터 검색하기 위한 정보 저장 및 검색 시스템 KR100670083B1 (ko)

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
US7370198P 1998-02-04 1998-02-04
US60/073,701 1998-02-04
US09/213,019 US6260044B1 (en) 1998-02-04 1998-12-16 Information storage and retrieval system for storing and retrieving the visual form of information from an application in a database
US09/213,019 1998-12-16

Publications (2)

Publication Number Publication Date
KR20010040685A true KR20010040685A (ko) 2001-05-15
KR100670083B1 KR100670083B1 (ko) 2007-01-17

Family

ID=26754797

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020007008562A KR100670083B1 (ko) 1998-02-04 1999-01-28 어플리케이션으로부터의 시각적 형태의 정보를 데이터베이스에 저장하고 데이터베이스로부터 검색하기 위한 정보 저장 및 검색 시스템

Country Status (10)

Country Link
US (3) US6260044B1 (ko)
EP (1) EP1051685B1 (ko)
JP (2) JP2002503004A (ko)
KR (1) KR100670083B1 (ko)
AT (1) ATE227863T1 (ko)
AU (1) AU764320B2 (ko)
CA (1) CA2319374C (ko)
DE (1) DE69903919T2 (ko)
NO (1) NO315726B1 (ko)
WO (1) WO1999040525A2 (ko)

Families Citing this family (147)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6980325B1 (en) * 1999-01-27 2005-12-27 Mitsubishi Denki Kabushiki Kaisha Automated color property adaptation in computer output devices
JP2000238338A (ja) * 1999-02-23 2000-09-05 Matsushita Electric Ind Co Ltd 画像処理装置
US8321411B2 (en) * 1999-03-23 2012-11-27 Microstrategy, Incorporated System and method for management of an automatic OLAP report broadcast system
US6718334B1 (en) * 1999-05-28 2004-04-06 Inter American Data, L.L.C. Computer implemented document and image management system
US6626959B1 (en) * 1999-06-14 2003-09-30 Microsoft Corporation Automatic formatting of pivot table reports within a spreadsheet
US7243236B1 (en) * 1999-07-29 2007-07-10 Intertrust Technologies Corp. Systems and methods for using cryptography to protect secure and insecure computing environments
US6591295B1 (en) * 1999-11-05 2003-07-08 Oracle International Corp. Methods and apparatus for using multimedia data stored in a relational database in web applications
US6859805B1 (en) * 1999-11-29 2005-02-22 Actuate Corporation Method and apparatus for generating page-level security in a computer generated report
US6772156B1 (en) * 1999-11-29 2004-08-03 Actuate Corporation Method and apparatus for creating and displaying a table of content for a computer-generated report having page-level security
US6606103B1 (en) * 1999-11-30 2003-08-12 Uhc Llc Infinite resolution scheme for graphical user interface object
US6466945B1 (en) * 1999-12-20 2002-10-15 Chartered Semiconductor Manufacturing Ltd Accurate processing through procedure validation in software controlled environment
US7082436B1 (en) * 2000-01-05 2006-07-25 Nugenesis Technologies Corporation Storing and retrieving the visual form of data
GB2378551B (en) * 2000-03-17 2004-07-21 Formstar Print Technologies Pt Form production system
WO2001071479A2 (en) 2000-03-17 2001-09-27 Xeno Development Inc. Methods and devices for reconstructing visual stimuli observed through browser-based interfaces over time
US7444399B2 (en) 2000-03-17 2008-10-28 Schlucktronix Llc Methods and devices for recording changes in visual stimuli observed through browser-based interfaces
US6847466B1 (en) * 2000-04-27 2005-01-25 Hewlett-Packard Development Company, L.P. Printing method
US6959429B1 (en) * 2000-05-16 2005-10-25 Watterson-Prime Software, Inc. System for developing data collection software applications
US20020059233A1 (en) * 2000-07-13 2002-05-16 International Business Machines Corporation Method and system in an electronic spreadsheet for applying user-defined options
US6763934B2 (en) 2000-08-31 2004-07-20 Ishida Co., Ltd. Electromagnetically driven transport device and weighing apparatus using the same
US6557009B1 (en) 2000-09-01 2003-04-29 American Management Systems, Inc. Environmental permit web portal with data validation capabilities
US6760728B1 (en) * 2000-09-27 2004-07-06 Palmsource, Inc. Method and apparatus for importing and exporting directory and calendar information to and from personal information management applications
US20020040311A1 (en) * 2000-10-04 2002-04-04 John Douglass Web browser page rating system
US7296219B1 (en) * 2000-10-16 2007-11-13 International Business Machines Corporation Client side, web-based calculator
US6774921B1 (en) * 2000-11-17 2004-08-10 Unisys Corporation Method and apparatus for dynamically saving/restoring the properties of controls in a screen dialog
US6665587B2 (en) * 2000-11-29 2003-12-16 Xerox Corporation Product template for a personalized printed product incorporating workflow sequence information
US7076485B2 (en) * 2001-03-07 2006-07-11 The Mitre Corporation Method and system for finding similar records in mixed free-text and structured data
US7200271B2 (en) * 2001-03-29 2007-04-03 The Boeing Company Method, computer program product, and system for performing automated text recognition and text search within a graphic file
US7054878B2 (en) * 2001-04-02 2006-05-30 Accenture Global Services Gmbh Context-based display technique with hierarchical display format
MXPA03009188A (es) * 2001-04-11 2004-11-22 Orell Fussli Sicherheitsdruck Metodo para imprimir documentos de seguridad usando hojas con identificadores.
US7213039B2 (en) * 2001-09-07 2007-05-01 Extended System, Inc. Synchronizing differing data formats
US7072879B2 (en) * 2001-10-22 2006-07-04 Siemens Building Technologies, Inc. Partially embedded database and an embedded database manager for a control system
US20030076512A1 (en) * 2001-10-23 2003-04-24 Laughlin John D. System and method to automatically scale preformatted text within an electronic document for printing
US6991761B2 (en) * 2001-10-26 2006-01-31 3M Innovative Properties Company Information management and material distribution for sterilization facilities
US8274719B2 (en) * 2001-11-30 2012-09-25 Canon Kabushiki Kaisha Printing system, print preview method, and preview method using a printer driver
US7315848B2 (en) * 2001-12-12 2008-01-01 Aaron Pearse Web snippets capture, storage and retrieval system and method
US7246102B2 (en) * 2001-12-21 2007-07-17 Agere Systems Inc. Method of improving the lookup performance of three-type knowledge base searches
US7996492B2 (en) * 2002-02-20 2011-08-09 Hewlett-Packard Development Company, L.P. System for providing information regarding network resources
US7376695B2 (en) * 2002-03-14 2008-05-20 Citrix Systems, Inc. Method and system for generating a graphical display for a remote terminal session
US8671213B2 (en) 2002-03-14 2014-03-11 Citrix Systems, Inc. Methods and apparatus for generating graphical and media displays at a client
US7379203B2 (en) * 2002-03-22 2008-05-27 Laser Substrates, Inc. Data capture during print process
US7808673B2 (en) * 2002-03-22 2010-10-05 Laser Substrates, Inc. Method and system for sending notification of an issued draft
US20030193582A1 (en) * 2002-03-29 2003-10-16 Fuji Photo Film Co., Ltd. Method for storing an image, method and system for retrieving a registered image and method for performing image processing on a registered image
US6961072B2 (en) * 2002-04-19 2005-11-01 Infologic, Inc. Method and system for viewing chromatographic peaks over a network
US20030210834A1 (en) * 2002-05-13 2003-11-13 Gregory Hitchcock Displaying static images using spatially displaced sampling with semantic data
US7272605B1 (en) * 2002-05-13 2007-09-18 Netezza Corporation Network interface for distributed intelligence database system
AU2003270828A1 (en) * 2002-09-18 2004-04-08 Netezza Corporation Asymmetric data streaming architecture having autonomous and asynchronous job processing unit
US7539940B2 (en) * 2002-10-09 2009-05-26 Microsoft Corporation System and method for converting between text formatting or markup language formatting and outline structure
US7437760B2 (en) * 2002-10-10 2008-10-14 International Business Machines Corporation Antiviral network system
US7370271B2 (en) * 2002-10-30 2008-05-06 Actuate Corporation Methods and apparatus for generating a spreadsheet report template
GB0228873D0 (en) * 2002-12-11 2003-01-15 Unilever Plc Process and apparatus for keeping records
US7363313B2 (en) * 2003-08-07 2008-04-22 International Business Machines Corporation Method, system, and program product for rebasing an application
US8515923B2 (en) * 2003-11-17 2013-08-20 Xerox Corporation Organizational usage document management system
US8548170B2 (en) 2003-12-10 2013-10-01 Mcafee, Inc. Document de-registration
US8656039B2 (en) 2003-12-10 2014-02-18 Mcafee, Inc. Rule parser
US7984175B2 (en) 2003-12-10 2011-07-19 Mcafee, Inc. Method and apparatus for data capture and analysis system
US20050131854A1 (en) * 2003-12-11 2005-06-16 International Business Machines Corporation Dynamic command line user interface
JP2005223863A (ja) * 2004-02-09 2005-08-18 Konica Minolta Business Technologies Inc 画像処理装置、画像処理方法ならびに画像処理プログラムおよびこれを記録したコンピュータ読み取り可能な記録媒体
US20050203976A1 (en) * 2004-02-11 2005-09-15 University Of California Systems, tools and methods for transferring files and metadata to and from a storage means
KR100585312B1 (ko) * 2004-05-21 2006-06-01 삼성전자주식회사 웹페이지 인쇄 방법
US7949849B2 (en) * 2004-08-24 2011-05-24 Mcafee, Inc. File system for a capture system
US7925658B2 (en) * 2004-09-17 2011-04-12 Actuate Corporation Methods and apparatus for mapping a hierarchical data structure to a flat data structure for use in generating a report
CN1791070B (zh) * 2004-12-17 2010-04-28 腾讯科技(深圳)有限公司 一种在网络上传输文档的方法
US7870480B1 (en) 2005-03-14 2011-01-11 Actuate Corporation Methods and apparatus for storing and retrieving annotations accessible by a plurality of reports
US20060225037A1 (en) * 2005-03-30 2006-10-05 Microsoft Corporation Enabling UI template customization and reuse through parameterization
US20060224962A1 (en) * 2005-03-30 2006-10-05 Microsoft Corporation Context menu navigational method for accessing contextual and product-wide choices via remote control
US20060221382A1 (en) * 2005-04-05 2006-10-05 Microsoft Corporation Supporting a filter pipeline for a spooling module
US8214754B2 (en) * 2005-04-15 2012-07-03 Microsoft Corporation Registration of applications and complimentary features for interactive user interfaces
US7602972B1 (en) * 2005-04-25 2009-10-13 Adobe Systems, Incorporated Method and apparatus for identifying white space tables within a document
US7840610B2 (en) * 2005-05-11 2010-11-23 International Business Machines Corporation Apparatus, system, and method for map definition generation
US7725476B2 (en) * 2005-06-14 2010-05-25 International Business Machines Corporation System and method for automated data retrieval based on data placed in clipboard memory
US8156079B1 (en) 2005-06-30 2012-04-10 Emc Corporation System and method for index processing
US7966292B1 (en) 2005-06-30 2011-06-21 Emc Corporation Index processing
US8161005B1 (en) 2005-06-30 2012-04-17 Emc Corporation Efficient index processing
US20080201689A1 (en) * 2005-06-30 2008-08-21 Freescale Semiconductor, Inc. Vector Crc Computatuion on Dsp
US7809777B2 (en) * 2005-07-01 2010-10-05 Qnx Software Systems Gmbh & Co. Kg File system having deferred verification of data integrity
US7873683B2 (en) 2005-07-01 2011-01-18 Qnx Software Systems Gmbh & Co. Kg File system having transaction record coalescing
US7970803B2 (en) * 2005-07-01 2011-06-28 Qnx Software Systems Gmbh & Co. Kg Optimized startup verification of file system integrity
US8959125B2 (en) * 2005-07-01 2015-02-17 226008 Ontario Inc. File system having inverted hierarchical structure
US7907608B2 (en) 2005-08-12 2011-03-15 Mcafee, Inc. High speed packet capture
US7752211B1 (en) * 2005-09-30 2010-07-06 Emc Corporation Adaptive index processing
US7698325B1 (en) 2005-09-30 2010-04-13 Emc Corporation Index processing for legacy systems
US7627609B1 (en) 2005-09-30 2009-12-01 Emc Corporation Index processing using transformed values
US20070118566A1 (en) * 2005-11-18 2007-05-24 International Business Machines Corporation Method and Apparatus for File Attribute Selection into a System Clipboard
US8196055B2 (en) 2006-01-30 2012-06-05 Microsoft Corporation Controlling application windows in an operating system
US20070219986A1 (en) * 2006-03-20 2007-09-20 Babylon Ltd. Method and apparatus for extracting terms based on a displayed text
US7725495B2 (en) 2006-04-11 2010-05-25 Microsoft Corporation Implementing referential integrity in a database hosting service
US7958227B2 (en) 2006-05-22 2011-06-07 Mcafee, Inc. Attributes of captured objects in a capture system
US20070285723A1 (en) * 2006-05-26 2007-12-13 Laser Substrates, Inc. Method and system for managing bank drafts
US8566503B2 (en) 2006-08-25 2013-10-22 Qnx Software Systems Limited Multimedia filesystem having unified representation of content on diverse multimedia devices
US7908276B2 (en) 2006-08-25 2011-03-15 Qnx Software Systems Gmbh & Co. Kg Filesystem having a filename cache
US9141627B2 (en) * 2006-09-26 2015-09-22 Sony Corporation Providing a user access to data files distributed in a plurality of different types of user devices
US7650365B2 (en) * 2006-12-20 2010-01-19 The Boeing Company System and method for delivering updated data information
US20080270401A1 (en) * 2007-04-26 2008-10-30 Kristin Petersen Method and Apparatus for Displaying Sorted Test Data Entries
WO2008147877A1 (en) * 2007-05-22 2008-12-04 Trimble Navigation Limited Handling raster image 3d objects
US20080320596A1 (en) * 2007-06-22 2008-12-25 Feng Chi Wang Distributed digital rights management system and methods for use therewith
JPWO2009025022A1 (ja) * 2007-08-20 2010-11-18 コニカミノルタエムジー株式会社 情報処理システム、およびプログラム
JP5392086B2 (ja) * 2007-10-04 2014-01-22 コニカミノルタ株式会社 データベースシステム、およびプログラム
JP5006764B2 (ja) * 2007-11-08 2012-08-22 キヤノン株式会社 画像処理装置、画像処理方法、プログラム、および記憶媒体
US9253154B2 (en) 2008-08-12 2016-02-02 Mcafee, Inc. Configuration management for a capture/registration system
US8850591B2 (en) 2009-01-13 2014-09-30 Mcafee, Inc. System and method for concept building
US8706709B2 (en) 2009-01-15 2014-04-22 Mcafee, Inc. System and method for intelligent term grouping
US8473442B1 (en) 2009-02-25 2013-06-25 Mcafee, Inc. System and method for intelligent state management
US8447722B1 (en) 2009-03-25 2013-05-21 Mcafee, Inc. System and method for data mining and security policy management
US8204900B2 (en) * 2009-05-21 2012-06-19 Bank Of America Corporation Metrics library
CN101989215A (zh) * 2009-07-29 2011-03-23 鸿富锦精密工业(深圳)有限公司 电子装置及在电子装置中窗口进程调用的方法
US9165043B2 (en) * 2009-11-25 2015-10-20 Maobing Jin Logical object search framework and application programming interface
KR101043238B1 (ko) * 2009-11-25 2011-06-30 주식회사 바우압텍 고전압용 정전기 방전 보호 소자
JP5316393B2 (ja) * 2009-12-15 2013-10-16 三菱マテリアル株式会社 プラズマ処理装置用電極板
US9355282B2 (en) * 2010-03-24 2016-05-31 Red Hat, Inc. Using multiple display servers to protect data
US9830569B2 (en) * 2010-09-24 2017-11-28 BitSight Technologies, Inc. Security assessment using service provider digital asset information
US10805331B2 (en) 2010-09-24 2020-10-13 BitSight Technologies, Inc. Information technology security assessment system
US8806615B2 (en) 2010-11-04 2014-08-12 Mcafee, Inc. System and method for protecting specified data combinations
US9349130B2 (en) 2010-11-17 2016-05-24 Eloqua, Inc. Generating relative and absolute positioned resources using a single editor having a single syntax
US8559765B2 (en) * 2011-01-05 2013-10-15 International Business Machines Corporation System and method for image storage and analysis
US9021353B2 (en) * 2011-11-16 2015-04-28 Jonathan Zornow Systems and methods for camouflaging an information stream
US20130166550A1 (en) * 2011-12-21 2013-06-27 Sap Ag Integration of Tags and Object Data
US20130246336A1 (en) 2011-12-27 2013-09-19 Mcafee, Inc. System and method for providing data protection workflows in a network environment
US8938428B1 (en) 2012-04-16 2015-01-20 Emc Corporation Systems and methods for efficiently locating object names in a large index of records containing object names
US20130288207A1 (en) * 2012-04-27 2013-10-31 Jed Murdock Ostrom Method of Preparing Letter Art
US20140149470A1 (en) * 2012-11-27 2014-05-29 Sandeep Rawal Systems and methods for storing and populating forms
CN103136365A (zh) * 2013-03-15 2013-06-05 山东浪潮齐鲁软件产业股份有限公司 烟草行业不同系统之间交互数据的方法
US9438615B2 (en) 2013-09-09 2016-09-06 BitSight Technologies, Inc. Security risk management
US9680858B1 (en) 2013-09-09 2017-06-13 BitSight Technologies, Inc. Annotation platform for a security risk system
US10698723B2 (en) 2014-03-31 2020-06-30 Oracle International Corporation Dropping an index without blocking locks
US20150324333A1 (en) * 2014-05-06 2015-11-12 Level 3 Communications, Llc Systems and methods for automatically generating hyperlinks
US10380115B2 (en) 2015-01-06 2019-08-13 International Business Machines Corporation Cross column searching a relational database table
US9912547B1 (en) * 2015-10-23 2018-03-06 Sprint Communications Company L.P. Computer platform to collect, marshal, and normalize communication network data for use by a network operation center (NOC) management system
US9928055B1 (en) 2015-10-23 2018-03-27 Sprint Communications Company L.P. Validating development software by comparing results from processing historic data sets
WO2017136867A1 (en) * 2016-02-11 2017-08-17 Global Software Innovation Pty Ltd Systems and methods for securing an entity-relationship system
US11182720B2 (en) 2016-02-16 2021-11-23 BitSight Technologies, Inc. Relationships among technology assets and services and the entities responsible for them
US10015089B1 (en) 2016-04-26 2018-07-03 Sprint Communications Company L.P. Enhanced node B (eNB) backhaul network topology mapping
US10425380B2 (en) 2017-06-22 2019-09-24 BitSight Technologies, Inc. Methods for mapping IP addresses and domains to organizations using user activity data
US10257219B1 (en) 2018-03-12 2019-04-09 BitSight Technologies, Inc. Correlated risk in cybersecurity
US10812520B2 (en) 2018-04-17 2020-10-20 BitSight Technologies, Inc. Systems and methods for external detection of misconfigured systems
US11200323B2 (en) 2018-10-17 2021-12-14 BitSight Technologies, Inc. Systems and methods for forecasting cybersecurity ratings based on event-rate scenarios
US10521583B1 (en) 2018-10-25 2019-12-31 BitSight Technologies, Inc. Systems and methods for remote detection of software through browser webinjects
US11080547B2 (en) * 2018-12-28 2021-08-03 Konica Minolta Laboratory U.S.A., Inc. Augmented reality document processing
US10726136B1 (en) 2019-07-17 2020-07-28 BitSight Technologies, Inc. Systems and methods for generating security improvement plans for entities
US11956265B2 (en) 2019-08-23 2024-04-09 BitSight Technologies, Inc. Systems and methods for inferring entity relationships via network communications of users or user devices
US10848382B1 (en) 2019-09-26 2020-11-24 BitSight Technologies, Inc. Systems and methods for network asset discovery and association thereof with entities
US11032244B2 (en) 2019-09-30 2021-06-08 BitSight Technologies, Inc. Systems and methods for determining asset importance in security risk management
US10791140B1 (en) 2020-01-29 2020-09-29 BitSight Technologies, Inc. Systems and methods for assessing cybersecurity state of entities based on computer network characterization
US10893067B1 (en) 2020-01-31 2021-01-12 BitSight Technologies, Inc. Systems and methods for rapidly generating security ratings
US10764298B1 (en) 2020-02-26 2020-09-01 BitSight Technologies, Inc. Systems and methods for improving a security profile of an entity based on peer security profiles
US11023585B1 (en) 2020-05-27 2021-06-01 BitSight Technologies, Inc. Systems and methods for managing cybersecurity alerts
US11122073B1 (en) 2020-12-11 2021-09-14 BitSight Technologies, Inc. Systems and methods for cybersecurity risk mitigation and management
US12079347B2 (en) 2021-03-31 2024-09-03 BitSight Technologies, Inc. Systems and methods for assessing cybersecurity risk in a work from home environment

Family Cites Families (70)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4493868A (en) * 1982-12-14 1985-01-15 Kimberly-Clark Corporation High bulk bonding pattern and method
US4941125A (en) 1984-08-01 1990-07-10 Smithsonian Institution Information storage and retrieval system
US4800510A (en) 1985-07-31 1989-01-24 Computer Associates International, Inc. Method and system for programmed control of computer generated graphics layout
US4852019A (en) 1986-01-31 1989-07-25 Computer Associates International, Inc. Method and system for retrieval of stored graphs
US5083262A (en) 1986-04-28 1992-01-21 International Business Machines Corporation Language bindings for graphics functions to enable one application program to be used in different processing environments
JPS6381574A (ja) 1986-09-25 1988-04-12 Toshiba Corp 図形デ−タベ−ス入力装置
JPS63174122A (ja) * 1987-01-05 1988-07-18 コンピュータ・エツクス・インコーポレーテツド コンピユーターヒューマンインタフエース
JP2753260B2 (ja) * 1987-05-13 1998-05-18 株式会社日立製作所 マージ方法
JPH0827800B2 (ja) 1987-05-15 1996-03-21 株式会社日立製作所 情報検索装置
US4943868A (en) 1988-03-01 1990-07-24 Kabushiki Kaisha Toshiba Handy image data filing apparatus
US5060135A (en) 1988-09-16 1991-10-22 Wang Laboratories, Inc. Apparatus for manipulating documents in a data processing system utilizing reduced images of sheets of information which are movable
EP0374241B1 (en) 1988-05-27 1997-08-27 Kodak Limited Document annotation and manipulation in a data processing system
US4933880A (en) 1988-06-15 1990-06-12 International Business Machines Corp. Method for dynamically processing non-text components in compound documents
US5231578A (en) 1988-11-01 1993-07-27 Wang Laboratories, Inc. Apparatus for document annotation and manipulation using images from a window source
JP2664240B2 (ja) * 1989-03-17 1997-10-15 株式会社日立製作所 画像データの登録検索方式
US5119465A (en) 1989-06-19 1992-06-02 Digital Equipment Corporation System for selectively converting plurality of source data structures through corresponding source intermediate structures, and target intermediate structures into selected target structure
JPH03142678A (ja) 1989-10-30 1991-06-18 Toshiba Corp 電子ファイリングシステム
JPH03202958A (ja) 1989-12-28 1991-09-04 Toshiba Corp 画像情報記憶検索装置
CA2070629C (en) * 1990-01-31 2000-01-11 Robert Harry Colvill Image handling
US5379376A (en) 1990-06-04 1995-01-03 International Business Machines Corporation Bi-directional graphics attribute conversion profile
US6152369A (en) * 1990-09-11 2000-11-28 Metrologic Instruments, Inc. System for storing, accessing and displaying html encoded
US5467444A (en) * 1990-11-07 1995-11-14 Hitachi, Ltd. Method of three-dimensional display of object-oriented figure information and system thereof
WO1992009966A1 (en) * 1990-11-30 1992-06-11 Cambridge Animation Systems Limited Image synthesis and processing
JPH04275684A (ja) 1991-03-01 1992-10-01 Fuji Xerox Co Ltd 図形情報データベース構築方法およびその方法が適用される装置
US5448692A (en) * 1991-03-27 1995-09-05 Ricoh Company, Ltd. Digital image processing device involving processing of areas of image, based on respective contour line traces
DE69230985T2 (de) * 1991-06-11 2000-10-05 Canon K.K., Tokio/Tokyo Bildverarbeitungssystem mit mehreren Speicheranordnungen
CA2066559A1 (en) 1991-07-29 1993-01-30 Walter S. Rosenbaum Non-text object storage and retrieval
JPH0554087A (ja) 1991-08-23 1993-03-05 Fujitsu Ltd 図形処理方式
US5546572A (en) 1991-08-28 1996-08-13 Hitachi, Ltd. Method for retrieving database of image information
US5418865A (en) 1992-03-20 1995-05-23 Xerox Corporation Mark sensing on a form
US5416895A (en) 1992-04-08 1995-05-16 Borland International, Inc. System and methods for improved spreadsheet interface with user-familiar objects
FR2696852B1 (fr) * 1992-10-12 1994-12-23 Bull Sa Procédé d'aide à l'optimisation d'une requête d'un système de gestion de base de données relationnel.
FR2697930B1 (fr) 1992-11-09 1995-01-13 Commissariat Energie Atomique Procédé de réalisation d'une image de référence synthétisée pour l'inspection d'objets.
US5579471A (en) 1992-11-09 1996-11-26 International Business Machines Corporation Image query system and method
US5630121A (en) 1993-02-02 1997-05-13 International Business Machines Corporation Archiving and retrieving multimedia objects using structured indexes
US5517605A (en) 1993-08-11 1996-05-14 Ast Research Inc. Method and apparatus for managing browsing, and selecting graphic images
JP3697276B2 (ja) * 1993-10-27 2005-09-21 ゼロックス コーポレイション 画像ディスプレイ方法及び画像ディスプレイ装置並びに画像スケーリング方法
JPH07146871A (ja) 1993-11-24 1995-06-06 Hitachi Ltd 静止画検索装置および静止画検索方法
JP3171744B2 (ja) 1994-03-15 2001-06-04 シャープ株式会社 音声及び動画の検索装置
US5781714A (en) * 1994-05-27 1998-07-14 Bitstream Inc. Apparatus and methods for creating and using portable fonts
US5528734A (en) 1994-05-31 1996-06-18 Canon Information Systems, Inc. Printer control system with copier type document handling
US5577188A (en) * 1994-05-31 1996-11-19 Future Labs, Inc. Method to provide for virtual screen overlay
US5687254A (en) 1994-06-06 1997-11-11 Xerox Corporation Searching and Matching unrecognized handwriting
US5519818A (en) 1994-09-19 1996-05-21 Taligent, Inc. Object-oriented graphic picking system
US5802361A (en) * 1994-09-30 1998-09-01 Apple Computer, Inc. Method and system for searching graphic images and videos
JP3175498B2 (ja) 1994-10-14 2001-06-11 セイコーエプソン株式会社 インクジェット式カラー印刷のための黒色領域識別方式
US5907835A (en) * 1994-11-18 1999-05-25 Canon Kabushiki Kaisha Electronic filing system using different application program for processing drawing commands for printing
JP3689441B2 (ja) * 1994-12-05 2005-08-31 キヤノン株式会社 電子ファイリング装置および電子ファイリング方法
US5546390A (en) * 1994-12-29 1996-08-13 Storage Technology Corporation Method and apparatus for radix decision packet processing
US5857064A (en) * 1995-04-03 1999-01-05 Object Technology Licensing Corporation System for imaging complex graphical images
US5630041A (en) 1995-06-23 1997-05-13 Dell Usa, L.P. System for permanently retaining multi dimensional CAD part information in the form of a tag within a part file
US5659742A (en) 1995-09-15 1997-08-19 Infonautics Corporation Method for storing multi-media information in an information retrieval system
US5664182A (en) 1995-09-18 1997-09-02 Actuate Software Corporation Persistent storage of report objects
US5737442A (en) 1995-10-20 1998-04-07 Bcl Computers Processor based method for extracting tables from printed documents
US5933823A (en) * 1996-03-01 1999-08-03 Ricoh Company Limited Image database browsing and query using texture analysis
US5983237A (en) * 1996-03-29 1999-11-09 Virage, Inc. Visual dictionary
US6038309A (en) * 1996-06-13 2000-03-14 Northern Telecom Limited Apparatus and method for externally controlling processing of a service call
US5899999A (en) * 1996-10-16 1999-05-04 Microsoft Corporation Iterative convolution filter particularly suited for use in an image classification and retrieval system
US5978477A (en) 1996-11-21 1999-11-02 Ricoh Company Limited Automatic and transparent document archiving
US6199073B1 (en) 1997-04-21 2001-03-06 Ricoh Company, Ltd. Automatic archiving of documents during their transfer between a peripheral device and a processing device
US5893908A (en) 1996-11-21 1999-04-13 Ricoh Company Limited Document management system
US6147767A (en) * 1997-09-05 2000-11-14 Comtec Informations Systems, Inc. Computer system for a printer which stores and operates multiple application programs
US6006226A (en) 1997-09-24 1999-12-21 Ricoh Company Limited Method and system for document image feature extraction
US5924096A (en) * 1997-10-15 1999-07-13 Novell, Inc. Distributed database using indexed into tags to tracks events according to type, update cache, create virtual update log on demand
US5987456A (en) * 1997-10-28 1999-11-16 University Of Masschusetts Image retrieval by syntactic characterization of appearance
US6031623A (en) * 1997-12-11 2000-02-29 Hewlett-Packard Company Computer system with evolving printer
US6003069A (en) 1997-12-16 1999-12-14 Lexmark International, Inc. Client/server printer driver system
US6072904A (en) * 1997-12-31 2000-06-06 Philips Electronics North America Corp. Fast image retrieval using multi-scale edge representation of images
US6070164A (en) 1998-05-09 2000-05-30 Information Systems Corporation Database method and apparatus using hierarchical bit vector index structure
US6020970A (en) * 1998-10-27 2000-02-01 First Data Corporation AFP to PostScript conversion method

Also Published As

Publication number Publication date
NO315726B1 (no) 2003-10-13
NO20003923D0 (no) 2000-08-02
DE69903919T2 (de) 2003-07-10
ATE227863T1 (de) 2002-11-15
AU764320B2 (en) 2003-08-14
NO20003923L (no) 2000-10-04
US20010044798A1 (en) 2001-11-22
US7587413B2 (en) 2009-09-08
JP2010170568A (ja) 2010-08-05
JP2002503004A (ja) 2002-01-29
EP1051685A2 (en) 2000-11-15
AU2564899A (en) 1999-08-23
WO1999040525A2 (en) 1999-08-12
KR100670083B1 (ko) 2007-01-17
CA2319374A1 (en) 1999-08-12
US20070038676A1 (en) 2007-02-15
WO1999040525A3 (en) 1999-11-18
CA2319374C (en) 2005-07-12
EP1051685B1 (en) 2002-11-13
JP4585039B2 (ja) 2010-11-24
US6260044B1 (en) 2001-07-10
US7143109B2 (en) 2006-11-28
DE69903919D1 (de) 2002-12-19

Similar Documents

Publication Publication Date Title
KR100670083B1 (ko) 어플리케이션으로부터의 시각적 형태의 정보를 데이터베이스에 저장하고 데이터베이스로부터 검색하기 위한 정보 저장 및 검색 시스템
EP1402404B1 (en) Storing and retrieving the visual form of data
US6161107A (en) Server for serving stored information to client web browser using text and raster images
US6073147A (en) System for distributing font resources over a computer network
US5960448A (en) System and method for displaying a graphically enhanced view of a region of a document image in which the enhanced view is correlated with text derived from the document image
US5211563A (en) Computer assisted learning support system and processing method therefor
US7543226B2 (en) Methods and systems for objects supporting structured language persistent state
US6360236B1 (en) Computer product for integrated document development
EP0753819A1 (en) System and method for accessing cobol data with a cobol compatible structured query language
US6915303B2 (en) Code generator system for digital libraries
US6590674B1 (en) Method and apparatus for creating and maintaining graphic representations of documents under a universal format
US6078920A (en) Computer program product and apparatus for retrieval of OLE enabled BLOBs from an RDBMS server
WO1999023584A2 (en) Information component management system
EP0843266A2 (en) Dynamic incremental updating of electronic documents
US9946698B2 (en) Inserting text and graphics using hand markup
EP1235162A2 (en) Information storage and retrieval system for storing and retrieving the visual form of information from an application in a database
US8271874B2 (en) Method and apparatus for locating and transforming data
US20040267811A1 (en) Host initiated display, host initiated display application program interface, and host initiated display method
Boss Information Technology Standards
Castles Computerised on-line engineering manuals
JPH07319946A (ja) 図面管理装置

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right
GRNT Written decision to grant
G170 Re-publication after modification of scope of protection [patent]
FPAY Annual fee payment

Payment date: 20121226

Year of fee payment: 7

FPAY Annual fee payment

Payment date: 20131226

Year of fee payment: 8

FPAY Annual fee payment

Payment date: 20141224

Year of fee payment: 9

FPAY Annual fee payment

Payment date: 20151224

Year of fee payment: 10

FPAY Annual fee payment

Payment date: 20161230

Year of fee payment: 11

FPAY Annual fee payment

Payment date: 20171228

Year of fee payment: 12

FPAY Annual fee payment

Payment date: 20190102

Year of fee payment: 13

EXPY Expiration of term