KR20080095861A - 기초 문서에 추가된 주석들을 처리하는 방법, 이 방법을구현하기 위한 기계 판독가능 명령들을 포함하는 하나이상의 기계 판독가능 매체, 기초 문서에 추가된 주석들을처리하기 위한 주석 처리 시스템 및 주석 엔진 모듈 - Google Patents

기초 문서에 추가된 주석들을 처리하는 방법, 이 방법을구현하기 위한 기계 판독가능 명령들을 포함하는 하나이상의 기계 판독가능 매체, 기초 문서에 추가된 주석들을처리하기 위한 주석 처리 시스템 및 주석 엔진 모듈 Download PDF

Info

Publication number
KR20080095861A
KR20080095861A KR1020087018254A KR20087018254A KR20080095861A KR 20080095861 A KR20080095861 A KR 20080095861A KR 1020087018254 A KR1020087018254 A KR 1020087018254A KR 20087018254 A KR20087018254 A KR 20087018254A KR 20080095861 A KR20080095861 A KR 20080095861A
Authority
KR
South Korea
Prior art keywords
annotation
engine
annotations
document
base document
Prior art date
Application number
KR1020087018254A
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 KR20080095861A publication Critical patent/KR20080095861A/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/10Text processing
    • G06F40/166Editing, e.g. inserting or deleting
    • G06F40/169Annotation, e.g. comment data or footnotes

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Audiology, Speech & Language Pathology (AREA)
  • Health & Medical Sciences (AREA)
  • Computational Linguistics (AREA)
  • General Health & Medical Sciences (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Artificial Intelligence (AREA)
  • Document Processing Apparatus (AREA)
  • Character Discrimination (AREA)
  • User Interface Of Digital Computer (AREA)

Abstract

기초 문서에 추가된 주석들을 처리하기 위한 주석 엔진들(208-218)이 설명된다. 주석 엔진들(208-218)은 하이라이트 주석; 블로브 주석(인클로징 유형 주석을 포함함); 언더라인 주석; 수직 브래킷 주석; 콜 아웃 주석; 및 프리 노트 주석을 포함하지만 이에 제한되지 않는 주석들의 유형을 자동 분류한다. 주석 엔진들은 문서 요소들의 계층 구조 트리의 형태의 입력을 수신하여, 주석 요소들의 계층 구조 트리 형태의 출력을 생성한다. 다른 사용들 중에서, 리플로우 엔진(220)은 주석 엔진들(208-218)의 출력을 이용하여, 레이아웃이 수정된 기초 문서 내에 주석들을 적절히 재배치할 수 있다.
Figure P1020087018254
주석 처리, 기초 문서, 주석 엔진, 파스 트리, 레이아웃, 재배치

Description

기초 문서에 추가된 주석들을 처리하는 방법, 이 방법을 구현하기 위한 기계 판독가능 명령들을 포함하는 하나 이상의 기계 판독가능 매체, 기초 문서에 추가된 주석들을 처리하기 위한 주석 처리 시스템 및 주석 엔진 모듈{STRATEGIES FOR PROCESSING ANNOTATIONS}
디지타이징 타블렛들은 타블렛 및 기록 메커니즘(일반적으로 펜 또는 스타일러스라고 한다)을 포함한다. 사용자는 디지타이징 타블렛을 사용하여 수기 방식으로 임의의 정보를 입력할 수 있다. 예를 들어, 사용자는 디지타이징 타블렛을 사용하여 기록 정보(예를 들어, 영숫자 정보)를 입력하거나 드로잉들을 작성할 수 있다. 일반적으로, 사용자는 이러한 임의의 정보를 하나 이상의 "잉크 스트로크"로 입력한다.
특수한 경우에, 사용자는 디지타이징 타블렛을 사용하여, 워드 프로세싱 문서, 이메일, PDF 문서, 마크업 언어 문서 등과 같은 기초 문서 "상에" 보조 정보를 입력할 수 있다. 즉, 사용자는 다양한 방식으로 기초 문서의 소정 부분들을 마킹하기 위하여 보조 정보를 입력할 수 있다. 예를 들어, 사용자는 기초 문서 내의 선택된 텍스트 줄에 언더라인하기로 결정할 수 있다. 또는, 사용자는 기초 문서 내의 선택된 텍스트 줄 주위에 원을 그리기로 결정하는 것 등등을 행할 수 있다. 일반적으로, 사용자는 예를 들어 기초 문서의 소정 부분들을 강조하고, 소정의 정 정을 행하는 것 등을 하도록 사용자가 기초 문서의 하드 카피 버전을 검토할 때 행할 수 있는 마크들의 종류들을 시뮬레이션하기 위해 그러한 보조 정보를 적용할 수 있다.
그러한 모든 보조 마크는 본 명세서에서 "주석"이라고 한다. 디지타이징 타블렛은 기초 문서와 함께 주석들을 저장할 수 있다. 기초 문서가 재생성될 때, 디지타이징 타블렛은 기초 문서 내의 적절한 위치들에 주석들을 다시 표시할 수 있다. 디지타이징 타블렛은 또한, 예를 들어 기초 문서의 편집에 응답하여 다양한 방식으로 기초 문서의 레이아웃을 변경할 수 있다. 수정된 기초 문서 내에 주석들을 적절히 표시하기 위하여, 디지타이징 타블렛은 주석들의 위치들을 조정하여 주석들이 기초 문서 내의 적절한 콘텐츠를 계속 마킹하게 하여야 한다.
주석들의 적절한 처리는, 특히 주석들이 수정된 기초 문서 상에 다시 그려져야 할 때, 어려운 작업이다. 예를 들어, 상이한 종류의 주석들은 상이한 각각의 특성들을 가질 수 있다. 이것은 수정된 기초 문서 상에 상이한 유형의 주석들을 다시 표시하는 것에 대해 상이한 고려들이 이루어질 수 있다는 것을 의미한다. 종래의 시스템들은 주석들의 처리에 있어서 이러한 종류의 복잡성을 해결하는 메커니즘을 이용하지 못한다.
적어도 전술한 이유로, 이 분야에는 주석들의 처리에 보다 적합한 메커니즘들이 필요하다.
<발명의 요약>
기초 문서에 추가된 주석들을 처리하기 위한 주석 처리 시스템이 설명된다. 일 구현에서, 주석 처리 시스템은 먼저 기초 문서에 추가된 주석들을 파싱하여 파스 트리(parse tree)를 형성한다. 파스 트리는 드로잉 개체들; 패러그래프들; 라인들; 워드들; 및 스트로크들 중 하나 이상과 연관된 노드들을 갖는다. 이어서, 이러한 파싱 분석에 기초하여, 주석 처리 시스템은 주석 분석을 수행하여, 기초 문서에 추가된 주석들을 자동으로 분류한다. 구체적으로, 주석 분석은 입력 스트로크들이 다음의 비제한적인 주석들의 리스트, 즉 하이라이트 주석; 블로브(blob) 주석(인클로징-유형(enclosing-type) 주석을 포함함); 언더라인 주석, 수직 브래킷(bracket) 주석; 콜 아웃(call-out) 주석; 및 프리 노트(free-note) 주석 중 하나 이상을 형성하는지를 결정하는 단계를 포함할 수 있다. 주석 분석은 그의 결과를 주석 파스 트리의 형태로 출력할 수 있다. 리플로우 엔진(reflow engine)이 주석 분석의 출력을 이용하여, 레이아웃이 수정된 기초 문서 내에 주석들을 적절히 배치할 수 있다.
추가적인 예시적인 구현들이 아래에 설명된다. 본 요약 부분에 설명되는 내용은 본 발명의 예시적인 표현을 나타내며, 따라서 청구범위 부분에 설명되는 본 발명의 범위를 한정하지 않는다.
도 1은 기초 문서에 추가된 주석들을 처리하기 위한 예시적인 환경을 나타내는 도면이다.
도 2는 도 1의 환경에서 사용하기 위한 예시적인 주석 처리 시스템으로서, 그룹핑 및 드로잉 분리 엔진(본 명세서에서 코어 파서 엔진이라고도 한다), 문서 레이아웃 분석 엔진, 주석 엔진 모듈(복수의 주석 엔진을 포함함), 리플로우 엔진 및 하나 이상의 주석 기반 애플리케이션을 포함하는 주석 처리 시스템을 나타내는 도면이다.
도 3-8은 도 2의 주석 처리 시스템에 의해 처리될 수 있는 상이한 예시적인 주석 유형들을 나타내는 도면이다.
도 9는 도 2의 코어 파서 엔진의 예시적인 동작을 나타내는 도면이다.
도 10은 도 2의 코어 파서 엔진의 예시적인 출력을 나타내는 도면이다.
도 11은 도 2의 문서 레이아웃 분석 엔진의 예시적인 출력을 나타내는 도면이다.
도 12는 도 2의 주석 엔진 모듈의 예시적인 동작을 나타내는 도면이다.
도 13은 도 2의 주석 엔진 모듈의 예시적인 출력을 나타내는 도면이다.
도 14-18은 도 2의 주석 엔진 모듈의 동작을 설명하는 다양한 예를 나타내는 도면이다.
명세서 및 도면들 전반에서 동일한 컴포넌트들 및 특징들을 참조하기 위해 동일한 번호들이 사용된다. 시리즈 100 번호들은 도 1에서 최초 발견되는 특징들을 참조하고, 시리즈 200 번호들은 도 2에서 최초 발견되는 특징들을 참조하며, 시리즈 300 번호들은 도 3에서 최초 발견되는 특징들을 참조하는 등등이다.
본 명세서는 기초 문서에 추가된 주석들을 처리하기 위한 기능을 설명한다. 처리는 주석들의 유형들을 분류하고 주석들을 기초 문서에 연결하는 앵커링(anchoring) 정보를 결정하는 것을 포함한다. 하나의 응용에 따르면, 기초 문서의 레이아웃이 변경될 때, 리플로우 엔진이 분류된 주석들 및 관련된 앵커링 정보를 이용하여 기초 문서 내의 주석들의 배치를 도울 수 있다.
용어와 관련하여, "기초 문서"라는 용어는 사용자의 주석들을 수신할 수 있는 임의 종류의 비 수기(non-handwritten) 문서를 포함할 수 있다. 일례로, 기초 문서는 워드 프로세싱 문서, 이메일, 스프레드시트 문서, PDF 문서, 임의 종류의 이미지 등과 같은 컴퓨터 생성 텍스트, 이미지 및/또는 다른 정보를 갖는 문서를 포함한다.
"잉크 스트로크"(또는 더 간단히 "스트로크")라는 용어는 디지타이징 타블렛 또는 유사한 메커니즘을 이용하여 사용자에 의해 생성된 마크들을 지칭한다. 즉, 단일 스트로크는 사용자가 타블렛에 펜을 접촉시킨 시점과 사용자가 타블렛으로부터 펜을 제거한 시점 사이에 펜에 의해 그려진 궤적을 포함한다.
"요소"라는 용어는 문서 내의(또는 문서에 추가된) 임의의 개체를 지칭한다. 요소는 전술한 바와 같은 스트로크에 대응할 수 있다. 다른 요소들은 스트로크들의 그룹핑들에 의해 형성된다. 이러한 합성 요소들은 (후술하는) 드로잉 개체, 패러그래프, 라인 및 워드를 포함할 수 있지만, 이에 제한되는 것은 아니다.
"앵커링 정보"라는 용어는 기초 문서의 레이아웃이 변경된 후에 주석 위치의 재배치 또는 주석의 변형을 돕는 문서 내의 워드들 또는 이미지들을 지칭한다. 앵커링 정보의 이용을 통해, 주석은 기초 문서 내의 적절한 콘텐츠에 "첨부되어" 유지될 수 있다.
상세한 설명은 다음과 같은 섹션들을 포함한다. 섹션 A는 주석들을 처리하기 위한 예시적인 환경의 개요을 제공한다. 섹션 B는 섹션 A의 환경에서 사용하기 위한 주석 처리 시스템의 개요를 제공한다. 그리고, 섹션 C는 섹션 B의 주석 처리 시스템에 의해 사용되는 주석 엔진들의 동작을 상세히 설명한다.
A. 주석들을 처리하기 위한 예시적인 환경
일반적으로, 도면들을 참조하여 설명되는 임의의 기능들은 소프트웨어, 하드웨어(예를 들어, 고정 로직 회로), 수동 처리 또는 이러한 구현들의 조합을 이용하여 구현될 수 있다. 여기에 사용되는 바와 같은 "로직", "모듈" 또는 "기능"이라는 용어는 일반적으로 소프트웨어, 하드웨어, 또는 소프트웨어와 하드웨어의 조합을 나타낸다. 예를 들어, 소프트웨어 구현의 경우, "로직", "모듈" 또는 "기능"이라는 용어는 처리 장치 또는 장치들(예를 들어, CPU 또는 CPU들) 상에서 실행될 때 지정 작업들을 수행하는 프로그램 코드(또는 선언 콘텐츠)를 나타낸다. 프로그램 코드는 하나 이상의 컴퓨터 판독가능 매체에 저장될 수 있다.
보다 일반적으로, 설명되는 로직, 모듈들 및 기능의 개별 유닛들로의 분리는 그러한 소프트웨어 및/또는 하드웨어의 실제의 물리적 그룹핑 및 할당을 반영하거나, 단일 소프트웨어 프로그램 및/또는 하드웨어 유닛에 의해 수행되는 상이한 작업들의 개념적 할당에 대응할 수 있다. 설명되는 로직, 모듈들 및 기능은 (예를 들어, 처리 장치에 의해 구현되는 바와 같은) 단일 사이트에 위치하거나, 복수의 위치에 분산될 수 있다.
"기계 판독가능 매체" 등의 용어는 다양한 종류의 저장 장치(자기, 광학, 반도체 등)를 포함하는, 임의 형태로 정보를 유지하기 위한 임의 종류의 매체를 지칭한다. 기계 판독가능 매체라는 용어는 또한 하나의 지점에서 다른 지점으로 정보를 전송하기 위한 다양한 유선 및/또는 무선 링크를 포함하는, 정보를 표현하는 일시적인 형태들을 포함한다.
도 1은 여기에 설명되는 주석 처리 기술들을 구현하는 데 사용될 수 있는 하나의 예시적인 환경(100)을 나타낸다. 일 구현에서, 이 기술들은 컴퓨팅 장치(102)에 의해 구현될 수 있다. 컴퓨팅 장치(102)는 처리 장치(104)(또는 복수의 처리 장치), 및 다양한 휘발성 및/또는 비휘발성 메모리(106)와 같은 통상의 하드웨어 컴포넌트들을 포함한다. 메모리(106)는 기초 운영 작업들을 수행하는 운영 체제(108)를 포함할 수 있다. 또한, 메모리(106)는 운영 체제(108)의 "상부에서" 실행되고 그의 자원들을 사용하는 기능을 포함할 수 있다. 이러한 기능은 주석 처리 시스템(110)을 포함할 수 있다. 주석 처리 시스템(110)은 후술하는 주석 관련 작업들을 구현한다. 이 도시된 구현에서, 주석 처리 시스템(110)은 처리 장치(104)에 의해 실행될 때 소정의 동작들을 수행하는 기계 판독가능 명령들로서 구현된다.
주석 처리 시스템(110)은 예를 들어 기초 문서들을 보조하는 주석들을 생성하고 분류함으로써 하나 이상의 기초 문서 상에서 동작할 수 있다. 전술한 바와 같이, 기초 문서는 워드 프로세싱 문서, 스프레드시트 문서, 이메일 문서, PDF 문서, 임의 종류의 마크업 문서(웹 액세스 가능 HTML 문서 등), 이미지 등(또는 이들 문서의 임의 조합)과 같은 텍스트, 이미지 및/또는 다른 정보를 갖는 컴퓨터 생성 문서를 포함할 수 있다. 도 1은 메모리(106)가 주석이 없는 최초의 기초 문서, 주석을 포함하는 기초 문서 등을 나타낼 수 있는 문서들(112)을 저장할 수 있다는 것을 일반적으로 보여준다.
사용자는 하나 이상의 입력 장치(114) 및 디스플레이 장치(116)(또는 다른 형태의 출력 장치)를 통해 컴퓨터(102)와 상호작용할 수 있다. 입력 장치들은 키보드(118), 마우스 장치(120), 펜 및 타블렛 장치(122) 또는 임의의 다른 종류의 입력 장치(124)를 포함할 수 있다. 구체적으로, 펜 및 타블렛 장치(122)는 컴퓨터 장치(102)에 수기 스트로크들을 입력하는 데 사용될 수 있다. 펜 및 타블렛 기술은 이 분야에 잘 알려져 있다. 일례로, 펜 및 타블렛 장치(122)는 이 분야에 타블렛 PC로서 일반적으로 지칭되는 단일 컴퓨팅 유닛을 형성하도록 컴퓨팅 장치(102)와 통합될 수 있다.
디스플레이 장치(116)는 사용자에게 정보를 제공하기 위한 임의 종류의 장치를 포함할 수 있다. 일례로, 디스플레이 장치(116)는 펜 및 타블렛 장치(122)와 통합될 수 있다. 예를 들어, 펜 및 타블렛 장치(122)에 의해 정의되는 디스플레이면은 입력 장치 및 디스플레이 장치 양자로서 기능할 수 있다. 어느 경우에나, 디스플레이 장치(116)는 사용자 인터페이스 프리젠테이션(126)을 제공한다. 사용자 인터페이스 프리젠테이션(126)은 컴퓨팅 장치(102)에 의해 처리되고 있는 기초 문서들(예를 들어, 문서 128)을 표시할 수 있다. 기초 문서(128)는 기초 텍스트(텍스트, 이미지 및/또는 다른 정보를 포함함)는 물론, 하나 이상의 주석(130)을 포함한다. 주석들(130)은 펜 및 타블렛 장치(122)를 통해, 또는 소정의 다른 메커니즘을 통해 수기 방식으로 입력된다. 주석들(130)은 기초 문서(128)의 소정 부분들을 강조하고, 기초 문서(128)의 소정 부분들을 편집하는 등등에 의해 기초 문서(128)의 콘텐츠를 보조한다. 즉, 통상적으로 사용자는 관행적으로 기초 문서(128)의 하드 카피를 수동으로 "마크 업"하는 것과 같은 환경에서 기초 문서(128)에 주석을 첨부한다.
전술한 구현은 단지 하나의 예시적인 구현이다. 다른 예로서, 컴퓨팅 장치(102)는 네트워크 커플링(134)을 통해 하나 이상의 원격 장치(132)가 액세스할 수 있는 서버 컴퓨터를 나타낼 수 있다. 네트워크 커플링(134)은 WAN 유형 커플링(예를 들어, 인터넷), LAN 유형 커플링 또는 이들의 조합을 포함할 수 있다. 본 구현에서, 사용자는 원격 장치(132)를 사용하여 잉크 스트로크를 생성할 수 있으며, 웹 액세스 가능 컴퓨팅 장치(102)는 후술하는 잉크 스트로크들의 분석을 수행할 수 있다.
또 다른 구현에서, 주석 처리 시스템(110)은 하드웨어로(기계 판독가능 코드 대신) 또는 기계 판독가능 코드와 하드웨어의 조합에 의해 구현될 수 있다. 또 다른 구현에서, 주석 처리 시스템(110)은 게임 콘솔, 이동 전화, 셋톱 박스, PDA 장치 등과 같은 소정의 다른 종류의 처리 장치를 이용하여(즉, 통상의 타블렛 PC 프레임워크 대신에 임의의 대안 장치를 이용하여) 구현될 수 있다.
본 명세서의 나머지는 주석 처리 시스템(110)의 예시적인 구성 및 동작을 설명한다. 설명을 쉽게 하기 위해, 소정의 동작들은 소정 순서로 수행되는 개별 단계들을 구성하는 것으로 설명된다. 이러한 구현들은 예시적이며 비제한적이다. 여기에 설명되는 소정의 단계들은 함께 그룹화되어 단일 동작으로 수행될 수 있으며, 소정의 단계들은 본 명세서에 설명되는 예들에서 이용되는 순서와 다른 순서로 수행될 수 있다.
B. 주석 처리 시스템의 개요
B.1. 주석 처리 시스템의 예시적인 구성
도 2는 도 1에 소개된 주석 처리 시스템(110)의 보다 상세한 도시를 나타낸다. 시스템(110)은 수직 스택으로 배열된 일련의 모듈들을 포함한다. 통상의 방식에서, 하나의 모듈이 다른 모듈의 "아래"에 있는 경우, 이는 "하위" 모듈이 하나 이상의 "상위" 모듈에 의해 사용될 수 있는 출력 결과를 생성하기 위한 기초 동작을 수행한다는 것을 의미한다.
주석 처리 시스템(110)의 최하위 레벨은 이하에서 "코어 파서 엔진"(202)으로 간단히 지칭되는 그룹핑 및 드로잉 분리 엔진(202)을 포함한다. 코어 파서 엔진(202)은 여러 개의 보다 작은 엔진들(아래의 서브섹션에서 설명됨)을 포함할 수 있다. 이 엔진(202)의 목적은 잉크 스트로크들을 워드들로, 워드들을 라인들로, 라인들을 패러그래프들로 그룹핑하는 것이다. 이어서, 코어 파서 엔진(202)은 기록 스트로크들과 드로잉 스트로크들을 구별한다. 이어서, 코어 파서 엔진(202)은 드로잉 스트로크들을 드로잉 개체들로 그룹핑한다. 코어 파서 엔진(202)은 (드로잉 개체 노드, 패러그래프 노드, 라인 노드, 워드 노드, 스트로크 노드 등을 포함하는) 노드들의 계층 구조 파스 트리의 형태로 출력을 생성한다. 주석 처리 시스템(110)의 최하위 레벨은 또한 문서 레이아웃 분석 엔진(204)을 포함한다. 이 엔진(204)의 목적은 기초 문서의 레이아웃을 분석하는 것이다.
주석 처리 시스템(110)의 다른 레벨은 주석 엔진 모듈(206)을 포함한다. 후술하는 바와 같이, 주석 엔진 모듈(206)은 코어 파서 엔진(202)으로부터 전술한 계층 구조 파스 트리 형태로 입력을 수신한다. 주석 엔진 모듈(206)은 또한 문서 레이아웃 분석 엔진(204)으로부터 입력을 수신한다. 이 모듈(206)의 목적은 기초 문서를 보조하는 주석들의 유형들을 분류하는 것이다. 이 모듈(206)은 또한 주석들을 기초 문서 내의 특정 콘텐츠에 연결하는 앵커링 정보를 결정한다. 주석 엔진 모듈(206)은 미가공의 인터럽트되지 않은 스트로크 정보에 대해서가 아니라 코어 파서 엔진(202)에 의해 이미 수행된 예비 분석에 기초하여 그의 분석을 수행한다. 코어 파서 엔진(202)에 의해 생성된 하이 레벨 개체들에 기초하여 해석을 수행하는 것은 주석 분류의 신뢰성 및 효율을 향상시킬 수 있으므로 유리하다.
주석 엔진 모듈(206)은 각각의 특정 유형의 주석들을 처리하기 위한 하나 이상의 엔진을 포함할 수 있다. 구체적으로, 도 2는 주석 엔진 모듈(206)이 6개의 상이한 유형의 주석들을 처리하기 위해 예시적인 6개 유형의 주석 엔진들을 포함하는 것을 도시하고 있다. 그러나, 이 구현은 대표적이며 비제한적이다. 다른 구현들에서는, 추가적인 주석 엔진들이 사용될 수 있다. 다른 구현들에서는, 도 2에 도시된 하나 이상의 주석 엔진이 생략될 수 있다.
대표적인 6개의 주석 엔진은 다음을 포함한다.
- 하이라이트 주석 엔진(208)은 하이라이트 유형 주석들을 분류한다. 도 3은 예시적인 하이라이트 주석(302)을 나타낸다. 하이라이트 주석은 특수 칼라 및 폭을 갖는 스트로크 또는 스트로크들로 구성된다. 하이라이트는 텍스트의 라인 내의 하나 이상의 워드를 통과하는 것과 같은 통상의 방식으로 문서 요소들(텍스트 등)을 마킹한다. 이 주석의 문맥은 이 주석에 의해 소정의 방식으로 마킹되는 워드들에 의해 정의된다.
- "블로브(blob)" 주석 엔진(210)은 블로브 유형 주석들을 분류한다. 도 4는 예시적인 블로브 주석(402)을 나타낸다. 블로브 주석은 하나 이상의 문서 요소를 인클로징하는(또는 거의 인클로징하는) 스트로크(또는 잇따르는 일련의 스트로크들)로 구성된다. 이 주석의 문맥은 이 주석이 둘러싸는 워드들에 의해 정의된다.
- 언더라인 주석 엔진(212)은 언더라인 유형 주석들을 분류한다. 도 5는 단일 스트로크를 포함하는 제1 언더라인 주석(502) 및 일련의 스트로크들을 포함하는 제2 언더라인 주석(504)을 나타낸다. 일반적으로, 언더라인 주석은 문서의 라인들 아래에 그려지는 스트로크 또는 일련의 스트로크들로 구성된다. 이 주석의 문맥은 이 주석 위의 워드들에 의해 정의된다.
- 수직 브래킷 주석 엔진(214)은 수직 브래킷 유형 주석들을 분류한다. 도 6은 예시적인 수직 브래킷 주석(602)을 나타낸다. 일반적으로, 수직 브래킷은 기초 문서의 일부를 수직으로 지정하는 하나 이상의 라인으로 구성된다. 수직 브래킷 주석의 문맥은 주석의 수직 범위와 연관된 라인들에 의해 정의된다.
- 콜 아웃 주석 엔진(216)은 콜 아웃 유형 주석들을 분류한다. 도 7은 예시적인 콜 아웃 주석(702)을 나타낸다. 일반적으로, 콜 아웃 주석은 기초 문서 내의 하나 이상의 요소를 소정의 잉크 워드들(또는 다른 개체)에 연결시킨다. 예를 들어, 도 7의 예에서, 콜 아웃 주석(702)은 텍스트 요소 "logic"을 "ask tony"를 구성하는 스트로크들에 연결시킨다. 콜 아웃 주석은 화살촉(또는 그의 종료점을 그림으로 지시하는 다른 특징)을 옵션으로 가질 수 있다. 콜 아웃 주석의 문맥은 이 주석에 의해 연결되는 문서 요소들 및 잉크 워드들에 의해 정의된다.
- 프리 노트 주석 엔진(218)은 프리 노트 유형 주석들을 분류한다. 도 8은 예시적인 프리 노트 주석(802)을 나타낸다. 그 명칭이 암시하는 바와 같이, 이 주석은 소정 문서 요소의 근처에 추가되는, 그 문서 요소와 연관된 노트를 포함한다. 예를 들어, 도 8에서, 프리 노트 텍스트 "good"은 워드 "combination"을 포함하는 문서 요소의 근처에 배치된다. 프리 노트 주석은 텍스트 기록 및/또는 드로잉을 포함할 수 있다. 프리 노트 주석의 문맥은 주석에 가장 가까운 문서 요소 또는 요소들에 의해 정의된다.
다시, 전술한 6개 주석 엔진들(208-218)의 리스트는 예시적이고, 비포괄적이고, 비제한적인 것으로 해석되어야 한다. 추가적인 섹션들은 6개의 주석 엔진(208-218) 각각의 동작을 상세히 설명한다. 일반적으로, 그리고 후술하는 바와 같이, 주석 엔진 모듈(206)의 출력은 검출된 상이한 유형의 주석들과 연관된 노드들을 갖는 계층 구조 트리를 정의한다.
주석 처리 시스템(110)의 다음 상위 레벨로 진행하면, 기초 문서의 레이아웃이 임의의 이유로 변경될 때, 주석 리플로우 엔진(220)이 주석 엔진 모듈(206)의 출력을 이용하여, 기초 문서 내의 주석들을 적절히 표시한다. 예를 들어, 문서는 그의 레이아웃을 변경하기 위해 임의의 방식으로 편집되거나, 문서는 그의 레이아웃을 변경하기 위해 다른 방식으로 단순히 보여질 수 있다. 이러한 레이아웃의 변경으로 인해, 주석들에 의해 마킹되어 있는 콘텐츠는 기초 문서 내의 위치를 변경할 수 있다. 주석 리플로우 엔진(220)의 목적은 기초 문서 내의 주석 달린 콘텐츠의 위치를 추적하고, 주석들의 위치를 조정하여, 주석들이 콘텐츠에 대해 적절한 위치 근접도로 계속 표시되게 하는 것이다. 주석 리플로우 엔진(220)은 주석 엔진 모듈(206)에 의해 정의되는 앵커링 정보에 부분적으로 기초하여 이 작업을 수행한다. 주석 리플로우 엔진(220)은 또한 재배치되는 주석의 유형의 고려에 기초하여 이 작업을 수행한다. 이것은 문서의 레이아웃이 변경될 때 상이한 유형의 주석들이 상이한 거동을 나타내기 때문이다. 즉, 문서의 레이아웃이 변경될 때 상이한 유형의 주석들이 재배치되는 방식에 대해 상이한 규칙들이 적용된다.
마지막으로, 하나 이상의 주석 기반 애플리케이션(222)이 주석 엔진 모듈(206) 및 주석 리플로우 엔진(220)에 의해 생성된 분석을 이용할 수 있다. 이들 애플리케이션(222)은 워드 프로세싱 프로그램, 스프레드시트 프로그램, 이미지 편집 프로그램 등과 같은 임의 종류의 최종 사용 애플리케이션들을 포함할 수 있다. 애플리케이션(222)은 문서 문맥이 정적인 경우(따라서, 문서의 레이아웃이 변경되지 않아야 하는 경우) 주석 리플로우 엔진(220)에 의존하지 않을 수 있다.
B.2. 코어 파서 엔진의 개요
위에서 요약된 바와 같이, 코어 파서 엔진(202)의 기능은 잉크 스트로크들에 대한 예비 분석을 수행하는 것이다. 분석의 결과는 잉크 스트로크들에 의해 형성되는 요소들을 드로잉 개체, 패러그래프, 라인, 워드 및 스트로크를 포함하는 상이한 카테고리들로 분류한다. 주석 엔진 모듈(206)은 미가공 스트로크 데이터 자체가 아니라 코어 파서 엔진(202)에 의해 생성된 하이 레벨 분석 결과들 상에 동작한다.
도 9는 코어 파서 엔진(202) 내의 다양한 모듈의 개요를 나타낸다. 도 9는 또한, 코어 파서 엔진(202)에서의 동작 흐름을 나타낸다. 도시된 바와 같이, 코어 파서 엔진(202)은 직렬로 동작하는 3개의 모듈(902, 904, 906)을 포함한다. 즉, 기록 파서(902)가 먼저 동작한다. 드로잉/기록 구별기(904)가 기록 파서(902)의 출력을 수신하고, 두 번째로 동작한다. 드로잉 그룹퍼(906)가 드로잉/기록 구별기(904)의 출력을 수신하고, 세 번째로 동작한다. 주석 엔진 모듈(206)은 드로잉 그룹퍼(906)의 출력을 수신하고, 그에 기초하여 주석 분류를 수행한다.
도 9에 도시된 모듈들 각각은 파스 트리의 형태로 입력을 수신하고, 또한 파스 트리 형태인 출력을 생성한다. 파스 트리는 펜 및 타블렛 장치(202)를 이용하여 수기 방식으로 사용자에 의해 입력된 정보의 구성을 기술하는 계층 구조 데이터 구조를 정의한다. 도 9의 우측 부분은 코어 파서 엔진(202)에 의해 수행되는 상이한 분석 단계들에서의 파스 트리들 내의 예시적인 노드들을 나타낸다. 도시된 바와 같이, 파스 트리들은 분석이 진행됨에 따라, 즉 추가적인 노드들의 유형들을 포함시킴으로써 점차 풍부해진다.
코어 파서 엔진(202) 내의 모듈들 각각이 아래에 차례로 설명된다.
기록 파서(902)로부터 시작하면, 이 모듈은 루트 노드 및 복수의 잉크 스트로크의 형태로 입력을 수신한다. 잉크 스트로크들은 사용자에 의해 만들어진 요소 마크들을 정의한다. 예를 들어, 사용자는 타블렛에 펜을 접촉시키고, 임의 형상의 경로의 궤적을 그린 후, 타블렛으로부터 펜을 들어올림으로써 단일 잉크 스트로크를 생성한다. 기록 파서(902)는 이러한 스트로크들을 워드들, 라인들 및 패러그래프들(블록들로도 지칭됨)의 계층 구조들로 그룹핑한다. 워드는 기록 워드일 것으로 예상되는 스트로크들의 그룹이다. 워드는 기록 또는 드로잉일 수 있다. 라인은 기록 라인일 것으로 예상되는 워드들의 그룹이다. 라인은 기록 또는 드로잉일 수 있다. 패러그래프는 기록 패러그래프일 것으로 예상되는 라인들의 그룹이다. 패러그래프는 기록 또는 드로잉일 수 있다. (이 단계에서, 워드들, 라인들 및 패러그래프들은 실제의 시맨틱 워드들, 라인들 및 패러그래프들에 대응할 필요가 없다.)
특징 추출, 동적 프로그래밍, 클러스터링 그룹핑 및 포스트 프로세싱의 조합을 포함하는 다양한 분석을 이용하여, 워드들, 라인들 및 패러그래프들의 발생을 검출할 수 있다.
- 특징 추출은 그의 분석을 거리, 기하 차이 및 선형성의 특징들에 기초한다. 거리 특징은 요소들 간의 공간 거리를 말한다. 이 특징은 멀리 떨어진 스트로크들의 그룹들이 함께 그룹핑되는 것을 방지한다. 차이 특징은 요소들이 서로 다른 정도를 말한다. 이 특징은 예를 들어 드로잉 스트로크들이 기록 스트로크들과 함께 분류될 가능성을 줄이는 것을 돕는다(이는 이들 두 유형의 스트로크들이 상이한 특성들을 갖기 때문이다). 선형성 특징은 워드 또는 라인 내의 선형 회귀 에러를 말한다. 이 특징은 2개의 라인 내의 2개의 워드가 함께 그룹핑되는 것을 방지할 수 있는데, 이는 2개의 워드가 하나의 워드로서 그룹핑되는 경우에 회귀 에러가 두배가 되기 때문이다. 특징 추출 후, 퍼지 기능을 이용하여 특징들을 조합하여 스코어를 산출한다. 스코어는 스트로크 세트가 올바른 그룹일 확률을 나타낸다.
- 동적 프로그래밍은 시간 정보에 따라 스트로크들을 그룹핑한다. 즉, 사용자는 스트로크들을 소정의 시간 순서로 입력하며, 컴퓨팅 장치(102)는 사용자가 스트로크들을 입력할 때 이 시간 순서를 기록할 수 있다. 동적 프로그래밍은 스트로크들을 기록된 시간 순서에 부분적으로 기초하여 그룹핑할 수 있다(사용자가 스트로크들을 입력하는 순서가 스트로크들이 어떻게 함께 그룹핑되어야 하는지와 연관된다는 가정에 기초한다).
- 클러스터 프로세싱은 위치, 형상 및 크기와 같은 드로잉 요소들과 연관된 공간 정보에 따라 스트로크들을 그룹핑한다.
- 포스트 프로세싱은 (사용자가 초기에 생성된 기록 또는 드로잉 요소를 수정하기로 결정할 때 발생하는) 사용자의 "늦은" 스트로크들의 입력과 같은 다양한 예외적인 사례들을 해결함으로써 전술한 분석에 대한 교정으로서 기능한다.
기록 파서(902)의 출력은 루트 노드, 및 패러그래프 노드(들), 라인 노드(들), 워드 노드(들) 및 스트로크 노드(들) 중 하나 이상을 갖는 파스 트리이다. 이 분석 시기에, 파스 트리는 다양한 노드가 기록 노드들에 대응하는지 또는 드로잉 노드들에 대응하는지를 구별하지 못한다.
다음 모듈인 기록/드로잉 구별기(904)는 기록 파서(902)의 출력을 수신한다. 기록/드로잉 구별기(904)는 이 수신된 데이터 상에 동작하여 기록 파서(902)에 의해 식별된 워드들이 기록 요소들에 대응하는지 또는 드로잉 요소들에 대응하는지를 결정한다. 구별기(904)는 다양한 특징에 기초하여 기록 요소들과 드로잉 요소들을 구별한다. 예시적인 특징들은 곡률, 밀도 및 수기 모델 특징들과 같은 단일 워드 특징들; 및 시간 및 공간 문맥 특징들과 같은 문맥 특징들을 포함한다. 구체적으로, 구별기(904)는 각각의 특징이 퍼지 기능에 맵핑되는 퍼지 결정 아키텍처를 채용한다. 구별기(904)는 이들 기능의 조합에 기초하여 최종 분류 결과를 제공한다.
드로잉/기록 구별기(904)의 출력은 루트 노드, 및 패러그래프 노드(들), 라인 노드(들), 워드 노드(들) 및 스트로크 노드(들) 중 하나 이상을 갖는 파스 트리이다. 이 분석 시기에, 파스 트리는 이제 다양한 노드가 기록 노드들에 대응하는지 또는 드로잉 노드들에 대응하는지를 구별한다. 드로잉 요소들은 보다 높은 레벨의 개체들로 아직 그룹핑되지 않았다.
다음 모듈인 드로잉 그룹퍼(906)는 드로잉/기록 구별기(904)의 출력을 수신한다. 드로잉 그룹퍼(906)는 이 수신된 데이터 상에 동작하여, 드로잉 스트로크들 및 첨부된 기록 스트로크들을 이들 요소 사이의 공간 관계에 따라 독립적인 개체들로 그룹핑한다. 그리드 기반 접근법을 이용하여 이 작업을 수행할 수 있는데, 이는 잉크 스트로크들을 적절한 크기의 이미지 그리드 내에 피팅하는 단계; 연결된 컴포넌트들(각각의 컴포넌트는 드로잉 개체 요소에 대응함)을 찾기 위해 이미지 그리드에 라벨링하는 단계; 및 드로잉 개체들을 조정하기 위해 발견적 규칙들을 적용하는 단계를 포함할 수 있다.
드로잉 그룹퍼(906)의 출력은 루트 노드, 및 드로잉 개체 노드들, 패러그래프 노드(들), 라인 노드(들), 워드 노드(들) 및 스트로크 노드(들) 중 하나 이상을 갖는 파스 트리이다. 도 10은 드로잉 그룹퍼(906)의 출력의 일례를 나타낸다. 드로잉 그룹퍼(906)의 출력은 주석 엔진 모듈(206)에 대한 입력이기도 하다.
B.3. 문서 레이아웃 분석 엔진의 개요
문서 레이아웃 분석 엔진(204)은 전자 기초 문서의 레이아웃을 분석한다. 도 11은 문서 레이아웃 분석 엔진(204)의 예시적인 출력을 나타낸다. 도시된 바와 같이, 문서 레이아웃 분석 엔진(204)은 이미지 콘텐츠, 라인 콘텐츠 및 워드 콘텐츠를 포함하는 전자 문서의 구성을 결정한다. 문서 레이아웃 분석 엔진(204)의 출력은 주석 엔진 모듈(206)에 대한 입력이기도 하다.
C. 엔진들의 동작에 관한 추가 상세
C.1. 동작의 개요
도 12는 주석 엔진 모듈(206)의 동작의 개요를 제공한다. 즉, 도 12에 점선 1202 위의 동작들은 코어 파서 엔진(202) 및 문서 레이아웃 분석 엔진(204)에 의해 수행되는 작업들에 대응하고, 점선 1202 아래의 동작들은 주석 엔진 모듈(206)에 의해 수행되는 작업들에 대응한다.
먼저, 단계 1204에서 전자 문서가 수신된다. 문서는 기초 문서에 추가된 주석들을 나타내는 스트로크들을 포함할 수 있다. 기초 문서는 텍스트, 이미지 또는 다른 정보(또는 이들의 소정 조합)를 포함할 수 있다. 문서는 워드 프로세싱 문서, 이메일 문서, 마크업 언어 문서, PDF 문서, 임의 종류의 이미지 등을 포함할 수 있다.
단계 1206에서 (코어 파서 엔진(202)을 이용하여) 그룹핑 및 드로잉 분리 분석을 수행한다. 이러한 동작들은 이전 섹션에서 설명되었다. 이러한 동작들은 전자 문서에서 패러그래프들, 라인들, 워드들 및 스트로크들을 식별하고, 기록 워드들과 드로잉 워드들을 구별한 후, 드로잉 요소들을 드로잉 개체들로 그룹핑하는 동작을 포함할 수 있다. 도 9는 단계 1206의 출력을 나타낸다.
단계 1208에서 문서 레이아웃 분석을 수행한다. 도 11은 단계 1208의 출력을 나타낸다.
다음 일련의 단계들은 도 2의 6개 각각의 주석 엔진(208-218)에 의해 수행되는 동작들에 대응한다. 이들 엔진(208-218)은 하나씩 순차적인 방식으로 수행된다. 각각의 엔진은 예비 단계들 1206 및 1208에서 생성된 결과들에 기초하는 입력을 수신한다. 더욱이, 하나 이상의 엔진이 다른 엔진들의 분석 결과로부터 이익을 얻을 수 있다. 각각의 엔진은 주석을 소정의 유형으로 분류하는 주석 결과를 생성한다. 각각의 엔진은 또한 주석을 전자 문서 내의 콘텐츠와 연관시키는 것을 돕는 앵커링 정보를 생성한다.
엔진들 각각은 후술하는 다양한 동작 특성에 의해 특성화된다. 다음 서브 섹션은 엔진들을 구현하기 위한 하나의 예시적이고 비제한적인 방법을 포함하는 의사 코드를 제공한다.
하이라이트 엔진
단계 1210에서 수행되는 하이라이트 동작으로부터 시작하면, 하이라이트 엔진(208)은 하이라이트 주석의 존재(presence)를 검출하기 위해 다음의 특징들에 의존할 수 있다.
- 주석은 칼라 및 폭과 같은 특수 잉크 특성들을 갖는다. 애플리케이션(222)이 어느 스트로크가 하이라이트 특성을 갖는지를 하이라이트 엔진(208)에게 알릴 수 있다.
- 주석은 드로잉 스트로크로 분류된다.
- 주석은 전자 문서 내의 텍스트 워드들에 오버랩된다.
- 주석은 높은 폭 대 높이 비를 갖는다. 높이는 스트로크 내의 포인트들의 수직 범위를 말한다. 폭은 스트로크 내의 포인트들의 수평 범위를 말한다.
하이라이트 주석들의 분석 및 분류를 개선하기 위해 추가적인 처리가 수행될 수 있다. 예를 들어, 하이라이트 엔진(208)은 다중 스트로크 하이라이트 주석들의 존재를 결정하기 위하여 동적 프로그래밍을 수행할 수 있다. 더욱이, 짧은 하이라이트들을 흡수(예를 들어, 결합)하기 위해 병합 프로세스가 이용될 수 있다.
하이라이트 주석에 대한 앵커링 정보는 하이라이트 주석과 오버랩되는 워드들을 포함한다.
블로브 엔진
단계 1212에서, 블로브 엔진(210)은 다음의 특징들에 의존하여 하이라이트 주석의 존재를 검출할 수 있다.
- 주석은 실질적으로 닫힌 스트로크 또는 일련의 순차적 스트로크들에 의해 형성된다.
- 주석은 텍스트 워드들 또는 이미지들을 인클로징한다.
블로브 주석들의 분석 및 분류를 개선하기 위해 추가적인 처리가 수행될 수 있다. 예를 들어, 블로브 엔진(210)은 다중 스트로크 블로브들을 해결하기 위해 병합 프로세스를 수행할 수 있다. 더욱이, 블로브 엔진은 블로브의 인클로징 특성의 확인을 돕기 위해 이미지 기반 방법을 실행할 수 있다.
블로브 주석에 대한 앵커링 정보는 블로브 주석이 달린 닫힌 영역 내에 위치하는 워드들 및 이미지들을 포함한다.
언더라인 엔진
단계 1214에서, 언더라인 엔진(212)은 언더라인 주석의 존재를 검출하기 위해 다음 특징들에 의존할 수 있다.
- 주석은 드로잉 스트로크로 분류된다.
- 주석은 기록 라인 또는 라인들 아래에 인접 형성된다.
- 주석은 높은 폭 대 높이 비를 갖는다.
- 주석은 수평 방향으로 워드와 오버랩된다.
언더라인 주석들의 분석 및 분류를 개선하기 위해 추가적인 처리가 수행될 수 있다. 예를 들어, 언더라인 엔진(212)은 다중 스트로크 언더라인 주석들의 존재를 검출하기 위해 동적 프로그래밍을 수행할 수 있다. 더욱이, 짧은 언더라인들을 흡수(예를 들어, 결합)하기 위해 병합 프로세서가 이용될 수 있다.
언더라인 주석에 대한 앵커링 정보는 언더라인 주석과 오버랩되는 워드들을 포함한다.
수직 브래킷 엔진
단계 1216에서, 수직 브래킷 엔진(214)은 다음 특징들에 의존하여 수직 브래킷 주석의 존재를 검출할 수 있다.
- 주석은 드로잉 스트로크로서 분류된다.
- 주석은 전자 문서의 마진 영역 내에 배치된다.
- 주석은 높은 높이 대 폭 비를 갖는다.
- 주석은 수직 방향으로 텍스트 워드들과 오버랩된다.
수직 브래킷 주석들의 분석 및 분류를 개선하기 위해 추가적인 처리 및 고려가 수행될 수 있다. 예를 들어, 다중 스트로크 수직 브래킷들을 지원하기 위해 동적 프로그래밍이 수행될 수 있다. 또한, 수직 브래킷 엔진(214)은 2개의 수직 브래킷을 완전 브래킷으로 병합할 때 방향 타당성을 체크할 수 있다. 예를 들어, 도 14에 도시된 예를 고려한다. 도시된 바와 같이, 스트로크들 A 및 B는 완전한 수직 브래킷으로 간주될 수 있다. 그러나, 스트로크들 B 및 C도 좌측으로 향하는 완전한 수직 브래킷으로 간주될 수 있다. 그러나, 좌측을 향하는 브래킷은 이 문맥에서 이치에 맞지 않는데, 이는 이들 브래킷 스트로크가 문서 콘텐츠의 좌측 부분에 위치하기 때문이다. 수직 브래킷 엔진(214)은 이러한 방향 관련 규칙을 적용하여 수직 브래킷 병합 후보들을 제거할 수 있다.
수직 브래킷들에 대한 앵커링 정보는 수직 브래킷이 수직으로 걸치는 연속 라인들을 포함한다. 수직 브래킷 엔진(214)은 이러한 앵커링 작업을 수행할 때 브래킷의 방향을 고려할 수 있다.
콜 아웃 엔진
단계 1218에서, 콜 아웃 엔진(216)은 다음 특징들에 의존하여 콜 아웃 주석의 존재를 검출할 수 있다.
- 콜 아웃의 연결기 요소는 드로잉 요소로 분류된다.
- 주석은 소정의 특성들을 갖는 연결기 시드 요소를 포함한다. 즉, 연결기 시드는 문서 콘텐츠의 경계와 교차하는 드로잉 스트로크를 포함한다. 연결기 시드의 한 단부는 문서 내의 워드 또는 이미지를 지시하고, 다른 단부는 잉크 스트로크(또는 스트로크들) 또는 기록 패러그래프를 지시한다. 이러한 연결기 시드는 콜 아웃 주석의 문맥을 결정하기 위한 시작 포인트이다. 연결기 시드 개념의 설명을 위해, 도 15를 주목한다. 이 예에서, 스트로크 B는 (전술한 특성들을 충족시키므로) 연결기 시드를 포함하는 반면, 스트로크 A 및 C는 연결기 시드를 갖지 않는다.
- 연결기는 텍스트 워드들 또는 이미지를 다른 잉크 개체(예를 들어, 기록 패러그래프 또는 드로잉 스트로크)에 연결한다.
- 연결기는 화살촉 또는 다른 말단 특성을 포함하거나 포함하지 않을 수 있다.
콜 아웃 주석들의 분석 및 분류를 개선하기 위해 추가적인 처리 및 고려가 수행될 수 있다. 예를 들어, 콜 아웃 엔진(216)은 언더라인으로 잘못 분류된 임의의 연결기가 존재하는지를 결정하기 위한 처리를 수행할 수 있다. 존재하는 경우, 콜 아웃 엔진(216)은 파스 트리 내의 언더라인 노드를 콜 아웃 주석 노드로 재정의하기 위해 언그룹(ungroup) 프로세스를 수행할 수 있다. 다른 처리 특징에 따르면, 콜 아웃 엔진(216)은 수직 브래킷으로 잘못 분류된 임의의 연결기가 존재하는지를 결정하기 위한 처리를 수행할 수 있다. 존재하는 경우, 콜 아웃 엔진(216)은 파스 트리 내의 수직 브래킷 노드를 콜 아웃 주석 노드로 재정의하기 위해 언그룹 프로세스를 수행할 수 있다. 마지막으로, 콜 아웃 엔진(216)은 다중 스트로크 연결기들을 처리하기 위한 프로시저를 이용할 수 있다.
콜 아웃 엔진(216)에 대한 앵커링 정보는 연결기에 의해 연결된 텍스트 워드들 또는 이미지를 포함한다.
프리 노트 엔진
단계 1220에서, 프리 노트 엔진(218)은 다음 특징들에 의존하여 프리 노트 주석의 존재를 검출할 수 있다.
- 이 주석은 기록 패러그래프가 기본 유닛을 정의하는 근접 문맥(nearby context)(텍스트 워드들 또는 이미지)을 갖는다.
프리 노트 엔진(218)에 대한 앵커링 정보는 프리 노트의 중심에 가장 가까운 중심을 갖는 텍스트 워드들 또는 이미지를 포함한다.
일반 노트로서, 주석 엔진은 다양한 환경에서 드로잉 스트로크들을 리그룹핑할 수 있다. 예를 들어, 도 16에 주목한다. 도시된 바와 같이, 스트로크 A, 스트로크 B 및 스트로크 C는 최초에 완전한 드로잉 개체를 구성한다. 그러나, 하이라이트 주석 엔진(208)이 그 후에 스트로크 B를 언더라인으로 분류하며, 따라서 스트로크들 A, B 및 C에 의해 형성된 드로잉 개체로부터 이 스트로크를 추출하는 것으로 가정한다. 이제, 스트로크들 A 및 C 사이에는 커다란 갭이 존재하므로, 이는 스트로크들 A 및 C가 더 이상 완전한 드로잉 개체로 간주될 수 없음을 의미한다. 이 상황을 치유하기 위하여, 드로잉 리그룹핑을 수행하여 드로잉 스트로크들 A 및 C를 2개의 개별 드로잉 개체로서 재분류할 수 있다.
도 13은 주석 엔진 모듈(206)의 예시적인 파스 트리 출력을 나타낸다. 도시된 바와 같이, 언더라인 주석, 하이라이트 주석, 수직 브래킷 주석 및 블로브 주석 각각은 주석의 각각의 유형을 식별하는 노드, 주석의 문맥을 나타내는 노드, 및 주석을 포함하는 스트로크들을 나타내는 적어도 하나의 노드를 포함한다. 콜 아웃 주석은 연결기 노드 및 잉크 파일(pile) 노드를 포함한다. 연결기 노드는 콜 아웃 주석과 연관된 연결기 스트로크를 나타내고, 주석 잉크 파일은 일련의 스트로크들, 기록 워드들, 기록 라인들 또는 기록 패러그래프들로 구성된다. 프리 노트 주석은 잉크 파일 노드를 포함한다. 주석 잉크 파일은 일련의 스트로크들, 기록 워드들, 기록 라인들 또는 기록 패러그래프들로 구성된다.
C.2. 엔진들에 대한 예시적인 의사 코드
아래의 예시적인 의사 코드는 도 2에 소개된 6개 엔진(208-218)을 구현하기 위한 하나의 비제한적인 기술을 제공한다. 의사 코드 내의 코멘트 및 의사 코드 자체의 설명 특성은 알고리즘들의 동작을 설명한다.
하이라이트 엔진
Figure 112008053304108-PCT00001
Figure 112008053304108-PCT00002
Figure 112008053304108-PCT00003
Figure 112008053304108-PCT00004
블로브 엔진
Figure 112008053304108-PCT00005
Figure 112008053304108-PCT00006
Figure 112008053304108-PCT00007
언더라인 엔진
Figure 112008053304108-PCT00008
Figure 112008053304108-PCT00009
Figure 112008053304108-PCT00010
수직 브래킷 엔진
Figure 112008053304108-PCT00011
Figure 112008053304108-PCT00012
Figure 112008053304108-PCT00013
Figure 112008053304108-PCT00014
Figure 112008053304108-PCT00015
콜 아웃 엔진
Figure 112008053304108-PCT00016
Figure 112008053304108-PCT00017
Figure 112008053304108-PCT00018
콜아웃 검색 프로세스를 설명하는 도 18에 주목한다. 스트로크(1802)는 콜 아웃 시드이다. 시드로부터 시작하여, 2개의 다른 스트로크를 통해, 문서 문맥(즉, 워드 "software") 및 잉크 문맥(별 형상의 스트로크) 양자가 발견될 수 있다. 연결기의 끝에 있는 2개의 작은 스트로크는 연결기 상에 그의 화살촉으로서 추가된다. 이러한 일련의 스트로크들은 일반적으로 다중 스트로크 콜 아웃 주석을 정의한다.
프리 노트 엔진
Figure 112008053304108-PCT00019
마지막으로, 본 발명은 구조적 특징들 및/또는 방법적 동작들에 고유한 언어로 설명되었지만, 첨부된 청구범위에서 정의되는 본 발명은 설명된 특정 특징들 또는 동작들로 한정될 필요가 없다는 것을 이해해야 한다. 오히려, 특정 특징들 및 동작들은 청구 발명을 구현하는 예시적인 형태로서 개시된다.

Claims (20)

  1. 기초 문서에 추가된 주석들을 처리하는 방법으로서,
    상기 기초 문서에 추가된 요소들을 식별하는 입력을 수신하는 단계(1204);
    상기 수신된 입력에 기초하여 상기 기초 문서에 추가된 하나 이상의 주석을 자동으로 분류하는 단계(1210-1220); 및
    상기 분류의 결과를 나타내는 출력을 생성하는 단계(1210-1220)
    를 포함하는, 기초 문서에 추가된 주석들을 처리하는 방법.
  2. 제1항에 있어서, 상기 기초 문서는 기계 생성 콘텐츠를 갖는 문서를 포함하는, 기초 문서에 추가된 주석들을 처리하는 방법.
  3. 제2항에 있어서, 상기 기계 생성 콘텐츠는 기계 생성 텍스트를 포함하는, 기초 문서에 추가된 주석들을 처리하는 방법.
  4. 제1항에 있어서, 상기 수신된 입력은 상기 기초 문서에 추가된 요소들을 상이한 노드들의 유형들로 체계화하는 계층 구조 트리를 포함하는, 기초 문서에 추가된 주석들을 처리하는 방법.
  5. 제4항에 있어서,
    상기 유형들은
    드로잉 개체 노드;
    패러그래프 노드;
    라인 노드;
    워드 노드; 또는
    스트로크 노드
    중 하나 이상을 포함하는, 기초 문서에 추가된 주석들을 처리하는 방법.
  6. 제1항에 있어서,
    상기 분류는
    하이라이트 주석;
    인클로징-유형(enclosing-type) 주석;
    언더라인 주석;
    수직 브래킷(bracket) 주석;
    콜-아웃(call-out) 주석; 또는
    프리-노트(free-note) 주석
    중 하나 이상에 대응하는 주석들을 식별하는, 기초 문서에 추가된 주석들을 처리하는 방법.
  7. 제1항에 있어서,
    상기 분류는
    하이라이트 주석 엔진;
    인클로징 유형 주석 엔진;
    언더라인 주석 엔진;
    수직 브래킷 주석 엔진;
    콜 아웃 주석 엔진; 또는
    프리 노트 주석 엔진
    중 하나 이상을 이용하는, 기초 문서에 추가된 주석들을 처리하는 방법.
  8. 제1항에 있어서,
    상기 분류는
    하이라이트 주석 엔진;
    인클로징 유형 주석 엔진;
    언더라인 주석 엔진;
    수직 브래킷 주석 엔진;
    콜 아웃 주석 엔진; 및
    프리 노트 주석 엔진
    의 각각을 이용하는, 기초 문서에 추가된 주석들을 처리하는 방법.
  9. 제1항에 있어서, 상기 분류의 출력은 상이한 각각의 노드들의 유형들을 이용 하여 상이한 주석들의 유형들을 식별하는 계층 구조 트리를 포함하는, 기초 문서에 추가된 주석들을 처리하는 방법.
  10. 제1항에 있어서, 상기 기초 문서의 레이아웃이 변경될 때 상기 분류의 출력을 이용하여 적어도 하나의 주석의 위치를 수정하는 단계를 더 포함하는, 기초 문서에 추가된 주석들을 처리하는 방법.
  11. 제1항의 방법을 구현하기 위한 기계 판독가능 명령들을 포함하는 하나 이상의 기계 판독가능 매체.
  12. 기초 문서에 추가된 주석들을 처리하기 위한 주석 처리 시스템(110)으로서,
    상기 기초 문서에 추가된 요소들을 분류하여, 파싱된(parsed) 출력 결과를 제공하도록 구성된 하나 이상의 기초 엔진(202, 204); 및
    상기 파싱된 출력 결과를 입력으로서 수신하고, 상기 파싱된 출력 결과에 기초하여 상기 기초 문서에 추가된 하나 이상의 주석을 자동으로 분류하며, 상기 주석들의 자동 분류의 결과를 나타내는 출력을 생성하도록 구성된 하나 이상의 주석 엔진(208-218)을 포함하는 주석 엔진 모듈(206)
    을 포함하는, 기초 문서에 추가된 주석들을 처리하기 위한 주석 처리 시스템.
  13. 제12항에 있어서, 상기 파싱된 출력 결과는 상기 기초 문서에 추가된 요소들을 상이한 노드들의 유형들로 체계화하는 계층 구조 트리를 포함하는, 기초 문서에 추가된 주석들을 처리하기 위한 주석 처리 시스템.
  14. 제13항에 있어서,
    상기 상이한 유형들은
    드로잉 개체 노드;
    패러그래프 노드;
    라인 노드;
    워드 노드; 또는
    스트로크 노드
    중 하나 이상을 포함하는, 기초 문서에 추가된 주석들을 처리하기 위한 주석 처리 시스템.
  15. 제12항에 있어서,
    상기 하나 이상의 주석 엔진은
    하이라이트 주석 엔진;
    인클로징-유형 주석 엔진;
    언더라인 주석 엔진;
    수직 브래킷 주석 엔진;
    콜-아웃 주석 엔진; 또는
    프리-노트 주석 엔진
    중 하나 이상을 포함하는, 기초 문서에 추가된 주석들을 처리하기 위한 주석 처리 시스템.
  16. 제12항에 있어서, 상기 생성된 출력은 상이한 각각의 노드들의 유형들을 이용하여 상이한 주석들의 유형들을 식별하는 계층 구조 트리를 포함하는, 기초 문서에 추가된 주석들을 처리하기 위한 주석 처리 시스템.
  17. 제12항에 있어서, 상기 기초 문서의 레이아웃이 변경될 때, 상기 생성된 출력을 이용하여 적어도 하나의 주석의 위치를 수정하도록 구성된 리플로우 엔진을 더 포함하는, 기초 문서에 추가된 주석들을 처리하기 위한 주석 처리 시스템.
  18. 기초 문서에 추가된 주석들을 처리하기 위한 주석 엔진 모듈(206)로서,
    상기 기초 문서에 추가된 요소들을 식별하는 입력을 수신하고;
    상기 수신된 입력에 기초하여 상기 기초 문서에 추가된 하나 이상의 주석을 자동으로 분류하고;
    상기 주석들의 자동 분류의 결과를 나타내는 출력을 생성하도록
    구성된 하나 이상의 주석 엔진(208-218)을 포함하는, 기초 문서에 추가된 주석들을 처리하기 위한 주석 엔진 모듈.
  19. 제18항에 있어서,
    상기 수신된 입력은 상기 기초 문서에 추가된 요소들을 상이한 노드들의 유형들로 체계화하는 계층 구조 트리를 포함하고,
    상기 생성된 출력은 상이한 각각의 노드들의 유형들을 이용하여 상이한 주석들의 유형들을 식별하는 계층 구조 트리를 포함하는, 기초 문서에 추가된 주석들을 처리하기 위한 주석 엔진 모듈.
  20. 제18항에 있어서,
    상기 하나 이상의 주석 엔진은
    하이라이트 주석 엔진;
    인클로징-유형 주석 엔진;
    언더라인 주석 엔진;
    수직 브래킷 주석 엔진;
    콜-아웃 주석 엔진; 또는
    프리-노트 주석 엔진
    중 하나 이상을 포함하는, 기초 문서에 추가된 주석들을 처리하기 위한 주석 엔진 모듈.
KR1020087018254A 2006-01-26 2007-01-25 기초 문서에 추가된 주석들을 처리하는 방법, 이 방법을구현하기 위한 기계 판독가능 명령들을 포함하는 하나이상의 기계 판독가능 매체, 기초 문서에 추가된 주석들을처리하기 위한 주석 처리 시스템 및 주석 엔진 모듈 KR20080095861A (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US11/275,750 US7836390B2 (en) 2006-01-26 2006-01-26 Strategies for processing annotations
US11/275,750 2006-01-26

Publications (1)

Publication Number Publication Date
KR20080095861A true KR20080095861A (ko) 2008-10-29

Family

ID=38287061

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020087018254A KR20080095861A (ko) 2006-01-26 2007-01-25 기초 문서에 추가된 주석들을 처리하는 방법, 이 방법을구현하기 위한 기계 판독가능 명령들을 포함하는 하나이상의 기계 판독가능 매체, 기초 문서에 추가된 주석들을처리하기 위한 주석 처리 시스템 및 주석 엔진 모듈

Country Status (4)

Country Link
US (1) US7836390B2 (ko)
KR (1) KR20080095861A (ko)
CN (1) CN101375278B (ko)
WO (1) WO2007089520A1 (ko)

Families Citing this family (45)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8239754B1 (en) * 2006-04-07 2012-08-07 Adobe Systems Incorporated System and method for annotating data through a document metaphor
US20070245227A1 (en) * 2006-04-13 2007-10-18 Workflow.Com, Llc Business Transaction Documentation System and Method
US8898558B2 (en) * 2007-12-07 2014-11-25 Hewlett-Packard Development Company, L.P. Managing multimodal annotations of an image
US8020119B2 (en) * 2007-12-14 2011-09-13 Microsoft Corporation Engine support for parsing correction user interfaces
US9400597B2 (en) 2008-07-23 2016-07-26 Microsoft Technology Licensing, Llc Presenting dynamic grids
US8751921B2 (en) * 2008-07-24 2014-06-10 Microsoft Corporation Presenting annotations in hierarchical manner
US20110145240A1 (en) * 2009-12-15 2011-06-16 International Business Machines Corporation Organizing Annotations
US20110289404A1 (en) * 2010-05-19 2011-11-24 Alexandra Fleur System and methods for document critique
US20120096345A1 (en) * 2010-10-19 2012-04-19 Google Inc. Resizing of gesture-created markings for different display sizes
JP5193263B2 (ja) * 2010-10-21 2013-05-08 シャープ株式会社 文書生成装置、文書生成方法、コンピュータプログラムおよび記録媒体
US20120192118A1 (en) 2011-01-24 2012-07-26 Migos Charles J Device, Method, and Graphical User Interface for Navigating through an Electronic Document
JP5585505B2 (ja) * 2011-03-17 2014-09-10 セイコーエプソン株式会社 画像供給装置、画像表示システム、画像供給装置の制御方法、画像表示装置、及び、プログラム
CN102257498B (zh) * 2011-05-31 2013-04-24 华为技术有限公司 配置文件的注释生成方法及配置文件生成设备
EP2807604A1 (en) 2012-01-23 2014-12-03 Microsoft Corporation Vector graphics classification engine
EP2807608B1 (en) 2012-01-23 2024-04-10 Microsoft Technology Licensing, LLC Borderless table detection engine
KR20130115694A (ko) * 2012-04-13 2013-10-22 삼성전자주식회사 사용자 데이터를 입력 및 관리할 수 있는 전자 장치 및 방법
US9953008B2 (en) 2013-01-18 2018-04-24 Microsoft Technology Licensing, Llc Grouping fixed format document elements to preserve graphical data semantics after reflow by manipulating a bounding box vertically and horizontally
KR20150011621A (ko) * 2013-07-23 2015-02-02 주식회사 케이티 전자 서적에 대한 부가 정보를 제공하는 방법 및 장치
US10545657B2 (en) 2013-09-03 2020-01-28 Apple Inc. User interface for manipulating user interface objects
CN103488518A (zh) * 2013-09-11 2014-01-01 上海镜月信息科技有限公司 一种以代码重要性为依据的代码高亮方法
CN103500158A (zh) * 2013-10-08 2014-01-08 北京百度网讯科技有限公司 批注电子文档的方法和装置
JP6328797B2 (ja) 2014-05-30 2018-05-23 アップル インコーポレイテッド 1つのデバイスの使用から別のデバイスの使用への移行
US11210457B2 (en) * 2014-08-14 2021-12-28 International Business Machines Corporation Process-level metadata inference and mapping from document annotations
US20160062571A1 (en) 2014-09-02 2016-03-03 Apple Inc. Reduced size user interface
TWI613582B (zh) 2014-09-02 2018-02-01 蘋果公司 用於重新組態使用者介面物件之方法、觸敏式電子器件及非暫時性電腦可讀儲存媒體
US20160070688A1 (en) * 2014-09-05 2016-03-10 Microsoft Corporation Displaying annotations of a document by augmenting the document
CN105677620B (zh) * 2014-11-21 2018-06-08 高德软件有限公司 项目管理文档生成方法及装置
US10042832B1 (en) * 2015-01-16 2018-08-07 Google Llc Systems and methods for stacking marginal annotations
US11500535B2 (en) * 2015-10-29 2022-11-15 Lenovo (Singapore) Pte. Ltd. Two stroke quick input selection
US10637986B2 (en) 2016-06-10 2020-04-28 Apple Inc. Displaying and updating a set of application views
DK201670595A1 (en) 2016-06-11 2018-01-22 Apple Inc Configuring context-specific user interfaces
CN107704306A (zh) * 2017-10-31 2018-02-16 北京小米移动软件有限公司 注释显示方法及装置
US10325022B1 (en) * 2018-03-13 2019-06-18 Appian Corporation Automated expression parallelization
US11714955B2 (en) * 2018-08-22 2023-08-01 Microstrategy Incorporated Dynamic document annotations
US11815936B2 (en) 2018-08-22 2023-11-14 Microstrategy Incorporated Providing contextually-relevant database content based on calendar data
US11182542B2 (en) * 2018-10-29 2021-11-23 Microsoft Technology Licensing, Llc Exposing annotations in a document
CN111199141B (zh) * 2018-10-31 2023-05-05 阿里巴巴集团控股有限公司 图片处理方法、装置及电子设备
CN112740201A (zh) * 2018-11-02 2021-04-30 株式会社和冠 墨水数据生成装置、方法及程序
US11682390B2 (en) 2019-02-06 2023-06-20 Microstrategy Incorporated Interactive interface for analytics
US11048864B2 (en) * 2019-04-01 2021-06-29 Adobe Inc. Digital annotation and digital content linking techniques
CN110471597A (zh) * 2019-07-25 2019-11-19 北京明略软件系统有限公司 一种数据标注方法和装置、计算机可读存储介质
US11443103B2 (en) * 2020-10-07 2022-09-13 Rakuten Kobo Inc. Reflowable content with annotations
US11907605B2 (en) 2021-05-15 2024-02-20 Apple Inc. Shared-content session user interfaces
US11449188B1 (en) 2021-05-15 2022-09-20 Apple Inc. Shared-content session user interfaces
US11790107B1 (en) 2022-11-03 2023-10-17 Vignet Incorporated Data sharing platform for researchers conducting clinical trials

Family Cites Families (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5675710A (en) * 1995-06-07 1997-10-07 Lucent Technologies, Inc. Method and apparatus for training a text classifier
US5832474A (en) * 1996-02-26 1998-11-03 Matsushita Electric Industrial Co., Ltd. Document search and retrieval system with partial match searching of user-drawn annotations
US6279014B1 (en) * 1997-09-15 2001-08-21 Xerox Corporation Method and system for organizing documents based upon annotations in context
AU5926499A (en) * 1998-09-15 2000-04-03 Microsoft Corporation Interactive playlist generation using annotations
US6687876B1 (en) * 1998-12-30 2004-02-03 Fuji Xerox Co., Ltd. Method and system for maintaining freeform ink annotations on changing views
US6721921B1 (en) * 2000-07-26 2004-04-13 Itm Associates Method and system for annotating documents using an independent annotation repository
JP3880504B2 (ja) * 2002-10-28 2007-02-14 インターナショナル・ビジネス・マシーンズ・コーポレーション 構造化・階層化コンテンツ用処理装置、構造化・階層化コンテンツ用処理方法、及びプログラム
US6973460B1 (en) * 2002-11-26 2005-12-06 Microsoft Corporation Framework for applying operations to nodes of an object model
US7218783B2 (en) 2003-06-13 2007-05-15 Microsoft Corporation Digital ink annotation process and system for recognizing, anchoring and reflowing digital ink annotations

Also Published As

Publication number Publication date
CN101375278A (zh) 2009-02-25
US7836390B2 (en) 2010-11-16
US20070174761A1 (en) 2007-07-26
CN101375278B (zh) 2012-07-04
WO2007089520A1 (en) 2007-08-09

Similar Documents

Publication Publication Date Title
KR20080095861A (ko) 기초 문서에 추가된 주석들을 처리하는 방법, 이 방법을구현하기 위한 기계 판독가능 명령들을 포함하는 하나이상의 기계 판독가능 매체, 기초 문서에 추가된 주석들을처리하기 위한 주석 처리 시스템 및 주석 엔진 모듈
Zhong et al. Image-based table recognition: data, model, and evaluation
KR101087443B1 (ko) 디지털 잉크 스트로크 제공 방법
JP2019083063A (ja) モバイル向けのおよび他の表示環境をサポートするインタラクティブなサイトおよびアプリケーションの自動変換のためのシステムおよび方法
US7305129B2 (en) Methods and apparatus for populating electronic forms from scanned documents
US7350142B2 (en) Method and system for creating a table version of a document
JP4343213B2 (ja) 文書処理装置および文書処理方法
US20070136660A1 (en) Creation of semantic objects for providing logical structure to markup language representations of documents
US7149967B2 (en) Method and system for creating a table version of a document
US10691936B2 (en) Column inferencer based on generated border pieces and column borders
WO2000020985A9 (en) Conversion of data representing a document to other formats for manipulation and display
JP2007072528A (ja) 文書構造解析方法、プログラム、装置
US10699112B1 (en) Identification of key segments in document images
JP5380040B2 (ja) 文書処理装置
US11620451B2 (en) Iterative training for text-image-layout transformer
JP4834351B2 (ja) 文字認識装置及び文字認識方法
JP2020140450A (ja) 構造化データ生成方法および構造化データ生成装置
WO2014068770A1 (ja) データ抽出方法、データ抽出装置及びそのプログラム
Jain et al. TSR-DSAW: table structure recognition via deep spatial association of words
CN110688842A (zh) 一种文档标题层级的分析方法、装置及服务器
US9594737B2 (en) Natural language-aided hypertext document authoring
JP4466241B2 (ja) 文書処理手法及び文書処理装置
KR102649429B1 (ko) 반정형 문서로부터 정보를 추출하는 방법 및 시스템
JP7430219B2 (ja) 文書情報構造化装置、文書情報構造化方法およびプログラム
JP2011070529A (ja) 文書処理装置

Legal Events

Date Code Title Description
WITN Application deemed withdrawn, e.g. because no request for examination was filed or no examination fee was paid