KR101726879B1 - 문서 병합 - Google Patents

문서 병합 Download PDF

Info

Publication number
KR101726879B1
KR101726879B1 KR1020107012220A KR20107012220A KR101726879B1 KR 101726879 B1 KR101726879 B1 KR 101726879B1 KR 1020107012220 A KR1020107012220 A KR 1020107012220A KR 20107012220 A KR20107012220 A KR 20107012220A KR 101726879 B1 KR101726879 B1 KR 101726879B1
Authority
KR
South Korea
Prior art keywords
document
unit
identifier
identifiers
data
Prior art date
Application number
KR1020107012220A
Other languages
English (en)
Other versions
KR20100087356A (ko
Inventor
조나단 베케트 베일러
에탄 요셉 번스타인
마크 롤랜드 나이트
크리스토퍼 제임스 안토스
Original Assignee
마이크로소프트 테크놀로지 라이센싱, 엘엘씨
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 마이크로소프트 테크놀로지 라이센싱, 엘엘씨 filed Critical 마이크로소프트 테크놀로지 라이센싱, 엘엘씨
Publication of KR20100087356A publication Critical patent/KR20100087356A/ko
Application granted granted Critical
Publication of KR101726879B1 publication Critical patent/KR101726879B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/10Text processing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/10Text processing
    • G06F40/197Version control

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Health & Medical Sciences (AREA)
  • Artificial Intelligence (AREA)
  • Audiology, Speech & Language Pathology (AREA)
  • Computational Linguistics (AREA)
  • General Health & Medical Sciences (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Document Processing Apparatus (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

제1 문서를 적어도 제2 문서와 병합하여 제3 문서를 발생하는 방법 및 시스템. 제1 문서 및 제2 문서 각각은 적어도 하나의 데이터 단위(data unit)를 포함한다. 각각의 데이터 단위는 단위 식별자(unit identifier) 및 편집 식별자(edit identifier)와 연관되어 있다. 문서들 중 한쪽 문서의 단위 식별자들을 다른쪽 문서의 단위 식별자들과 비교하여, 각각의 단위 식별자가 일치하는 단위 식별자(matching unit identifier)인지 불일치하는 단위 식별자(non-matching unit identifier)인지를 판정한다. 일치하는 단위 식별자들과 연관된 데이터 단위들의 편집 식별자들이 서로 비교된다. 불일치하는 단위 식별자들과 연관된 데이터 단위들이 제3 문서에 바로 삽입된다. 일치하는 단위 식별자들 및 일치하는 편집 식별자들과 연관된 데이터 단위들이 제3 문서에 바로 삽입된다. 일치하는 단위 식별자들 및 불일치하는 편집 식별자들과 연관된 데이터 단위들이 병합되어 제3 문서에 넣어진다.

Description

문서 병합{DOCUMENT MERGE}
병합(merging)이란 동일한 문서의 서로 다른 사본들에 행해진 다수의 변경들을 조정하는 행위를 말한다. 2명의 사람에 의해 동시에 문서가 수정될 필요가 있는 경우가 아주 많다. 나중에, 이 변경들은 양쪽 저작자의 의도를 반영하는 하나의 새로운 문서로 병합될 필요가 있다.
재래식 병합(conventional merge)은 번거롭고 시간이 많이 걸릴 수 있다. 보다 효율적인 병합이 요망된다.
<발명의 요약>
본 명세서에 기술하는 바와 같이, 어떤 실시예들의 한 양태는 제1 문서를 적어도 제2 문서와 병합하여 제3 문서를 발생하는 방법에 관한 것이다. 제1 문서 및 제2 문서 각각은 적어도 하나의 데이터 단위(data unit)를 포함한다. 각각의 데이터 단위는 단위 식별자(unit identifier) 및 편집 식별자(edit identifier)와 연관되어 있다. 이 방법은 제1 문서의 데이터 단위들의 단위 식별자들을 획득하는 단계를 포함한다. 이 방법은 또한 제2 문서의 데이터 단위들의 단위 식별자들을 획득하는 단계를 포함한다. 제1 문서 및 제2 문서 중 각 한쪽 문서의 단위 식별자들을 제1 문서 및 제2 문서 중 다른쪽 문서의 단위 식별자들과 비교하여, 단위 식별자들 각각이 일치하는 단위 식별자(matching unit identifier)인지 불일치하는 단위 식별자(non-matching unit identifier)인지를 판정한다. 일치하는 단위 식별자들은 제1 문서 및 제2 문서의 대응하는 데이터 단위들을 나타낸다. 불일치하는 단위 식별자들 각각은 제1 문서 및 제2 문서 중 다른쪽 문서의 어떤 데이터 단위에도 대응하지 않는 제1 문서 및 제2 문서 중 한쪽 문서의 데이터 단위를 나타낸다. 일치하는 단위 식별자들과 연관된 데이터 단위들의 편집 식별자들을 서로 비교하여, 일치하는 편집 식별자들(matching edit identifiers)을 확인한다. 일치하는 편집 식별자들 각각은 제1 문서 및 제2 문서 중 한쪽 문서의 데이터 단위가 제1 문서 및 제2 문서 중 다른쪽 문서의 대응하는 데이터 단위와 일치한다는 것을 나타낸다. 불일치하는 단위 식별자들과 연관된 제1 문서 및 제2 문서의 데이터 단위들은 제3 문서에 바로 삽입된다. 그에 부가하여, 일치하는 단위 식별자들 및 일치하는 편집 식별자들과 연관된 제1 문서 및 제2 문서의 데이터 단위들은 제3 문서에 바로 삽입된다. 마지막으로, 일치하는 단위 식별자들 및 불일치하는 편집 식별자들과 연관된 제1 문서 및 제2 문서의 데이터 단위들은 병합되어 제3 문서에 넣어진다.
어떤 실시예들의 다른 양태는 문서 처리 시스템(document processing system)에 관한 것이다. 이 문서 처리 시스템은 문서 처리 애플리케이션(document processing application)및 제1 문서를 포함한다. 이 문서 처리 애플리케이션은 적어도 2개의 문서들을 서로 병합하여 제3 문서를 발생하도록 구성되어 있다. 제1 문서는 문서 처리 애플리케이션에 의해 처리되도록 구성되어 있다. 제1 문서는 내용(content) 및 메타데이터(metadata)를 저장한다. 이 내용은 적어도 하나의 데이터 단위를 포함한다. 이 메타데이터는 각각의 데이터 단위와 연관된 단위 식별자 및 편집 식별자를 포함한다. 각각의 데이터 단위의 단위 식별자는 그 데이터 단위가 생성될 때 발생된다. 각각의 데이터 단위의 편집 식별자는 그 데이터 단위에 대한 수정이 저장될 때 발생된다.
또 다른 양태들은 제1 문서 및 제2 문서로부터 병합된 문서를 발생하는 방법을 구현하는 컴퓨터-실행가능 명령어들을 갖는 컴퓨터-판독가능 저장 매체(computer-readable storage medium)에 관한 것이다. 이 방법은 제1 문서가 제1 문서 식별자(document identifier)를 갖는지 여부 및 제2 문서가 제2 문서 식별자를 갖는지 여부를 판정하는 단계를 포함한다. 이 방법은 또한 제1 문서 및 제2 문서 중 하나의 문서가 제1 문서 식별자 및 제2 문서 식별자 중 하나의 문서 식별자를 갖는 경우, 제1 문서 식별자 및 제2 문서 식별자 중 하나의 문서 식별자를 획득하는 단계를 포함한다. 이 방법은 제1 문서의 제1 문서 식별자를 제2 문서의 제2 문서 식별자와 비교하는 단계를 더 포함한다. 이 방법은 제1 문서 및 제2 문서 중 어느 것도 문서 식별자를 갖지 않는 경우, 제1 문서 및 제2 문서에 대해 재래식 병합(conventional merge)을 수행하여 병합된 문서를 발생하는 단계를 포함한다. 게다가, 이 방법은 제1 문서 식별자가 제2 문서 식별자와 다른 경우, 제1 문서 및 제2 문서에 대해 재래식 병합을 수행하여 병합된 문서를 발생하는 단계를 포함한다. 마지막으로, 이 방법은 제1 문서 식별자가 제2 문서 식별자와 일치하는 경우, 제1 문서 및 제2 문서에 대해 가속 병합(accelerated merge)을 수행하여 병합된 문서를 발생하는 단계를 포함한다.
이 요약은 이하에서 상세한 설명에 더 기술되는 일련의 선택된 개념들을 간략화된 형태로 소개하기 위해 제공된 것이다. 이 요약은 청구된 발명 대상의 주요 특징들 또는 필수적인 특징들을 확인하기 위한 것이 아니며, 어떤 식으로든지 청구된 발명 대상의 범위를 제한하는 데 사용되기 위한 것도 아니다.
도 1은 예시적인 문서 처리 시스템의 블록도.
도 2는 도 1의 예시적인 문서 처리 애플리케이션에 의해 처리되도록 구성되어 있는 예시적인 문서를 나타낸 블록도.
도 3은 도 2에 도시된 문서에 대한 예시적인 포맷을 나타낸 블록도.
도 4는, 메타데이터 파일이 문서와 별도로 저장된다는 것을 제외하고는, 도 3에 도시된 것과 유사한 다른 예시적인 문서를 나타낸 블록도.
도 5는 제1 문서를 제2 문서와 병합하여 제3 문서를 발생하는 것을 나타낸 블록도.
도 6은 본 발명의 양태들을 구현하는 예시적인 컴퓨팅 시스템을 나타낸 도면.
도 7은 제1 문서를 제2 문서와 병합하여 제3 문서를 발생하는 예시적인 방법을 나타낸 도면.
도 8은 단위 식별자 및 편집 식별자를 문서의 각각의 데이터 단위에 할당하고 저장하는 예시적인 방법을 나타낸 도면.
도 9는 제1 문서를 제2 문서와 병합하여 병합된 문서를 발생하는 다른 예시적인 방법을 나타낸 도면.
이제부터, 본 발명은 특정의 실시예들이 도시되어 있는 첨부 도면들을 참조하여 예시적인 실시예들에 대해 보다 상세히 기술할 것이다. 그렇지만, 다른 양태들이 많은 서로 다른 형태로 구현될 수 있고, 본 개시 내용에 특정의 실시예들을 포함시키는 것이 이러한 양태들을 본 명세서에 기술되어 있는 실시예들로 제한하는 것으로 해석되어서는 안된다. 오히려, 도면들에 도시된 실시예들이 포함되어 있는 것은, 철저하고 완전하며 또 당업자들에게 의도된 범위를 충분히 전달하는 개시 내용을 제공하기 위한 것이다. 이 도면들을 참조하면, 그 전체에 걸쳐 도시된 유사한 구조들 및 요소들이 유사한 참조 번호들로 표시되어 있다.
본 발명의 실시예들은 일반적으로 문서 병합에 관한 것이다. 비제한적인 일례에서, 제1 문서를 적어도 제2 문서와 병합하여 제3 문서를 발생하는 것이 기술되어 있다. 제1 문서 및 제2 문서 각각은 적어도 하나의 데이터 단위(data unit)를 포함한다. 각각의 데이터 단위는 단위 식별자(unit identifier) 및 편집 식별자(edit identifier)와 연관되어 있다. 추가의 실시예들은 문서 처리 시스템(document processing system)에 관한 것이다. 이 문서 처리 시스템은 적어도 2개의 문서들을 서로 병합하여 제3 문서를 발생하도록 구성되어 있는 문서 처리 애플리케이션(document processing application)을 포함하고 있다.
도 1은 예시적인 문서 처리 시스템의 블록도이다. 문서 처리 시스템(100)은 문서 처리 애플리케이션(document processing application)(110) 및 문서들(120)을 포함한다. 문서 처리 애플리케이션(110)은 문서들(120)을 서로 병합하여 병합된 문서(merged document)를 발생하도록 구성되어 있다. 대안의 실시예들에서, 문서 처리 애플리케이션(110)은 3개, 4개 또는 그 이상의 문서들을 서로 병합하여 병합된 문서를 발생하도록 구성되어 있다.
하나의 가능한 실시예에서, 문서 처리 애플리케이션(110)은 MICROSOFT
Figure 112010035669879-pct00001
Office Word 애플리케이션(이것으로 제한되지 않음)과 같은 워드 프로세싱 애플리케이션이다. 다른 가능한 실시예들에서, 문서 처리 시스템(100)은 이미지, 데이터, 음성 또는 임의의 다른 적당한 문서 처리 시스템이다. 이와 유사하게, 문서 처리 애플리케이션(110)도 역시 Microsoft
Figure 112010035669879-pct00002
Office POWERPOINT
Figure 112010035669879-pct00003
, EXCEL
Figure 112010035669879-pct00004
, VISIO
Figure 112010035669879-pct00005
, ACCESS™, 및 OUTLOOK
Figure 112010035669879-pct00006
소프트웨어 애플리케이션(이들로 제한되지 않음)과 같은 이미지, 데이터, 음성 또는 임의의 다른 적당한 문서 처리 애플리케이션일 수 있다. 문서들(120)은 텍스트 문서(text document) 또는 서식있는 텍스트 문서(rich text document), 프리젠테이션, 스프레드시트, 도면(drawing), 데이터, 이메일, 및 적당한 포맷으로 된 임의의 다른 문서들일 수 있다.
도 2는 도 1의 예시적인 문서 처리 애플리케이션(110)에 의해 처리되도록 구성되어 있는 예시적인 문서(120)를 나타낸 블록도이다. 문서(120)는 하나 이상의 데이터 단위들(124)로 분할된다. 각각의 데이터 단위(124)는 데이터 단위(124)의 수명 동안에 존속되는 고유의 단위 식별자(126)를 할당받는다. 단위 식별자(126)는 연관된 데이터 단위(124)를 식별해주고 이 데이터 단위(124)를 문서(120) 내의 임의의 다른 데이터 단위들과 구분시켜준다.
데이터 단위(124)는 또한, 데이터 단위(124)가 생성, 편집 또는 수정될 때, 편집 식별자(128)를 할당받는다. 상세하게는, 데이터 단위(124)가 생성, 편집 또는 수정될 때마다, 새로운 편집 식별자(128)가 데이터 단위(124)에 할당됨으로써 새로운 편집 식별자(128)가 데이터 단위(124)의 이전의 편집 식별자(있는 경우)를 대체한다. 새로운 편집 식별자(128)는 데이터 단위(124)의 이전의 편집 식별자(있는 경우)와 다르다. 하나의 가능한 실시예에서, 편집 식별자(128)는 랜덤하게 발생된다.
예시적인 실시예들에서, 문서(120)는 각종의 방법들을 사용하여 데이터 단위들(124)로 분할된다. 예를 들어, 문서(120)가 텍스트 문서인 경우, 문서의 각각의 단락(paragraph)이 개별적인 데이터 단위로 분할될 수 있다. 환언하면, 텍스트 문서의 일례에서, 데이터 단위(124)는 단락이라고도 할 수 있다. 이러한 일례에서, 단위 식별자(126)는 단락 식별자(paragraph identifier)라고 한다. 다른 유형의 문서들에서, 문서(120)를 데이터 단위들로 분할하는 데 다른 방법들이 사용될 수 있다. 예를 들어, 문서를 개별적인 데이터 단위들로 분할하는 데 문서 내의 객체들, 그래픽들, 슬라이드들 또는 다른 선택가능한 항목들이 사용될 수 있다.
단위 식별자(126) 및 편집 식별자(128)는 데이터 단위(124)를 식별하기에 적당한 임의의 포맷으로 되어 있을 수 있다. 단위 식별자(126) 및 편집 식별자(128)의 한가지 가능한 예시적인 포맷은 숫자들, 문자들 및/또는 심볼들의 조합(32-비트 정수 등)이다. 당업자라면 단위 식별자(126) 및 편집 식별자(128)에 대한 많은 다른 적당한 식별자 포맷들을 잘 알 것이다. 단위 식별자(126) 및 편집 식별자(128)는 문서(120)에, 별도의 파일에, 또는 임의의 다른 적당한 저장가능하고 액세스가능한 매체에 저장될 수 있다. 단위 식별자(126) 및 편집 식별자(128)를 저장하는 어떤 예시적인 포맷들이 이하에서 도 3 및 도 4에 더 상세히 기술되어 있다.
문서(120)는 또한 문서(120)를 식별해주는 문서 식별자(document identifier)(122)도 포함하고 있다. 하나의 가능한 실시예에서, 문서 식별자(122)는 문서(120)가 새로 생성될 때 문서(120)에 할당된다. 다른 가능한 실시예에서, 문서 식별자(122)는 문서(120)가 문서 식별자를 갖지 않을 때 문서(120)에 할당된다. 예를 들어, 문서(120)가 단위 식별자 또는 편집 식별자를 인식하지 않는 애플리케이션에 의해 이전에 편집되어 있을 때, 문서 식별자(122)가 문서(120)에 할당된다.
문서 식별자(122)가 문서(120)에 할당될 때 문서 식별자(122)는 고유하고 영속적이다. 환언하면, 문서 식별자(122)는 문서(120)의 수명 동안에 존속된다. 문서(120)가 편집 및 수정될 때에도, 문서 식별자(122)는 변하지 않는다. 그에 부가하여, 문서(120)로부터 별도의 문서가 생성될 때, 문서 식별자(122)가 별도의 문서에 그대로 유지된다. 이러한 일은 사용자가 문서를 새 문서에 복사할 때 또는 다수의 사용자들이 동일한 문서를 편집할 수 있게 해주기 위해 문서의 다수의 사용자 사본들이 생성될 때 일어날 수 있다.
도 3은 도 2에 도시된 문서(120)에 대한 예시적인 포맷을 나타낸 블록도이다. 상세하게는, 문서(120)는 내용(content)(130) 및 메타데이터(metadata)(140)를 포함한다. 문서(120)는 내용(130) 및 메타데이터(140)를 저장하고 있다. 내용(130)은 적어도 하나의 데이터 단위(124)를 포함한다. 메타데이터(140)는 각각의 데이터 단위(124)와 연관되어 있는 단위 식별자(126) 및 편집 식별자(128)를 포함한다. 단위 식별자(126)는 데이터 단위(124)가 생성될 때 발생된다. 편집 식별자(128)는 데이터 단위(124)에 대한 수정이 문서 내에 저장될 때마다 발생된다. 메타 데이터(140)는 문서(120)에 저장된다.
도 4는, 메타데이터 파일(150)이 문서(120)와 별도로 저장된다는 것을 제외하고는, 도 3에 도시된 것과 유사한 다른 예시적인 문서(120)를 나타낸 블록도이다. 양호하게는, 메타데이터 파일(150)은 문서(120)의 내용(130)에 관련된 메타데이터(140)를 포함한다. 메타데이터 파일(150)의 메타데이터(140)는 메타데이터(140)가 어느 데이터 단위(124)와 관련되어 있는지를 나타내는 단위 식별자(126)를 포함한다. 하나의 가능한 실시예에서, 메타데이터(140)는 또한 편집 식별자(128)도 포함할 수 있다. 데이터 단위(124)는 메타데이터(140)에 포함된 단위 식별자(126)로 표시된다.
도 5는 제1 문서(220)를 제2 문서(240)와 병합하여 제3 문서(260)를 발생하는 것을 나타낸 블록도이다. 제1 문서(220) 및 제2 문서(240)의 예시적인 구조들은 이상에서 도 1 내지 도 4에 기술되어 있다. 제3 문서(260)는 제1 문서(220)와 제2 문서(240)를 병합하여 생성되는 병합된 문서이다.
도 5에 도시된 일례에서, 제1 문서(220)는 제1 문서 식별자(122a) 및 데이터 단위들(124a 내지 124c)을 포함한다. 제1 문서 식별자(122a)는 제1 문서(220)를 식별해준다. 3개의 데이터 단위들(124a 내지 124c)이 도 5에 도시되어 있지만, 제1 문서(220)는 3개보다 더 많거나 더 적은 데이터 단위들을 포함할 수 있다. 도시된 데이터 단위들(124a 내지 124c)에 관하여, 데이터 단위(124a)는 데이터 단위(124a)와 연관되어 있는 단위 식별자(U1) 및 편집 식별자(E1)를 갖는다. 데이터 단위(124b)는 데이터 단위(124b)와 연관되어 있는 단위 식별자(U2) 및 편집 식별자(E20)를 갖는다. 데이터 단위(124c)는 데이터 단위(124c)와 연관되어 있는 단위 식별자(U3) 및 편집 식별자(E3)를 갖는다.
이와 유사하게, 제2 문서(240)는 제2 문서 식별자(122b) 및 데이터 단위들(124d 내지 124f)을 포함한다. 제2 문서 식별자(122b)는 제2 문서(240)를 식별해준다. 3개의 데이터 단위들(124d 내지 124f)이 도 5에 도시되어 있지만, 제2 문서(240)는 3개보다 더 많거나 더 적은 데이터 단위들을 포함할 수 있다. 데이터 단위(124d)는 데이터 단위(124d)와 연관되어 있는 단위 식별자(U1) 및 편집 식별자(E1)를 갖는다. 데이터 단위(124e)는 데이터 단위(124e)와 연관되어 있는 단위 식별자(U2) 및 편집 식별자(E21)를 갖는다. 살펴본 바와 같이, 제2 문서(240)에서의 데이터 단위(124e)의 편집 식별자(E21)는 제1 문서(220)에서의 데이터 단위(124b)의 편집 식별자(E20)와 다르다. 데이터 단위(124f)는 데이터 단위(124f)와 연관되어 있는 단위 식별자(U4) 및 편집 식별자(E4)를 갖는다.
도 5에 도시된 예시적인 병합에서, 제1 문서(220)의 제1 문서 식별자(122a)는 제2 문서(240)의 제2 문서 식별자(122b)와 동일하다. 제1 문서(220) 및 제2 문서(240)는 이에 따라 이하에서 상세히 기술되는 바와 같이 가속 병합에서 수행된다. 제1 문서(220) 및 제2 문서(240)가 동일한 문서 식별자를 갖기 때문에, 제1 문서(220) 및 제2 문서(240)가 공통의 원본(origin) 또는 부모를 공유한다. 그에 따라, 이하에 기술되는 가속 병합 프로세스들 중 하나 이상을 사용하여 제1 문서(220)가 제2 문서(240)와 병합될 수 있다.
제1 문서(220)의 데이터 단위(124a)는 제2 문서(240)의 데이터 단위(124d)와 동일한 단위 식별자(U1) 및 편집 식별자(E1)를 갖는다. 따라서, 데이터 단위(124a)는 데이터 단위(124d)와 동일한 것으로 표시된다. 환언하면, 데이터 단위(124d)가 데이터 단위(124a)로부터 변경되거나 수정되지 않았다. 그에 따라, 데이터 단위(124a)와 데이터 단위(124d) 간에는 병합이 필요없다. 오히려, 데이터 단위(124a)[또는 데이터 단위(124a)와 동일한 데이터 단위(124d)]가, 데이터 단위(124g)로 나타낸 바와 같이, 제3 문서(260)에 바로 삽입된다. 데이터 단위(124a)와 데이터 단위(124d) 간에는 병합이 필요하지 않기 때문에, 병합된 문서(260)(즉, 제3 문서)에서의 데이터 단위(124g)는 그와 연관된 단위 식별자(U1) 및 편집 식별자(E1)를 유지한다. 데이터 단위(124a) 내의 내용과 데이터 단위(124d) 내의 내용을 추가로 비교하지 않고 이와 같이 바로 삽입하는 것은 시간을 절감할 수 있고, 효율을 개선시키며, 병합 정밀도(merge precision)를 향상시킨다.
데이터 단위(124b) 및 데이터 단위(124e)는 동일한 단위 식별자(U2)를 갖지만 서로 다른 편집 식별자(E20, E21)를 갖는다. 서로 다른 편집 식별자(E20, E21)는 데이터 단위(124b) 및 데이터 단위(124e)가 서로 다를 수 있다는 것을 나타낸다. 환언하면, 데이터 단위(124b)와 데이터 단위(124e) 간의 병합이 필요하다. 따라서, 제3 문서(260)에서의 데이터 단위(124h)가 데이터 단위(124b)와 데이터 단위(124e) 간의 병합으로부터 발생된다. 단위 식별자(U2)는 데이터 단위(124h)에 유지된다. 2개의 데이터 단위(124b 및 124e)의 병합에서 새로운 편집 식별자(E22)가 생성된다.
제1 문서(220)의 데이터 단위(124c)가 데이터 단위(124c)의 단위 식별자(U3)와 일치하는 단위 식별자를 갖는 제2 문서(240) 내의 어떤 데이터 단위도 갖을 수 없는 것으로 밝혀진다. 이에 따라, 데이터 단위(124c)가 병합 없이 제3 문서(260)에 바로 삽입되며, 제3 문서(260)에서 데이터 단위(124i)로 나타내어져 있다. 이에 따라, 데이터 단위(124i)는 데이터 단위(124i)와 연관되어 있는 단위 식별자(U3) 및 편집 식별자(E3)를 포함한다. 제3 문서(260)에서의 데이터 단위(124i)가 제1 문서(220)에서의 데이터 단위(124c)와 정확하게 동일하다. 하나의 가능한 실시예에서, 데이터 단위(124c)가 곧바로 제3 문서(260)의 끝에 첨부된다. 다른 가능한 실시예에서, 데이터 단위들(124a 내지 124j) 간의 관계들에 따라, 데이터 단위(124c)가 [데이터 단위(124c)의 내용들의 병합 없이] 제3 문서(260)의 적절한 위치에 삽입되도록 정렬된다.
이와 유사하게, 제2 문서의 데이터 단위(124f)가 데이터 단위(124f)의 단위 식별자(U4)와 일치하는 단위 식별자를 갖는 제1 문서(220) 내의 어떤 데이터 단위도 갖을 수 없는 것으로 밝혀진다. 따라서, 데이터 단위(124f)가 병합 없이 제3 문서(260)에 바로 삽입되며, 제3 문서(260)에서 데이터 단위(124j)로 나타내어져 있다. 이에 따라, 데이터 단위(124j)는 데이터 단위(124j)와 연관되어 있는 단위 식별자(U4) 및 편집 식별자(E4)를 포함한다. 제3 문서(260)에서의 데이터 단위(124j)가 제2 문서(240)에서의 데이터 단위(124f)와 정확하게 동일하다. 하나의 가능한 실시예에서, 데이터 단위(124f)가 곧바로 제3 문서(260)의 끝에 첨부된다. 다른 가능한 실시예에서, 데이터 단위들(124a 내지 124j) 간의 관계들에 따라, 데이터 단위(124f)가 [데이터 단위(124f)의 내용들의 병합 없이] 제3 문서(260)의 적절한 위치에 삽입되도록 정렬된다.
이에 따라, 병합된 문서(260)는 데이터 단위들(124g 내지 124j)을 포함한다. 데이터 단위들(124g 내지 124j) 각각도 역시 단위 식별자 및 편집 식별자와 연관되어 있다. 그에 부가하여, 문서 식별자(122a)(또는 122a와 동일한 122b)가 병합된 문서(260)에서 그대로 유지되며, 도 5에서 문서 식별자(122c)로 나타내어져 있다.
다른 가능한 실시예에서, 제1 문서(220)의 문서 식별자(122a)가 제2 문서(240)의 문서 식별자(122b)와 다른 경우, 제1 문서와 제2 문서 간에 재래식 병합이 수행된다. 또 다른 가능한 실시예에서, 제1 문서(220) 및 제2 문서(240) 중 어느 하나가 문서 식별자를 갖지 않는 경우, 재래식 병합이 수행되어 제3 문서를 발생시킬 것이다.
도 5의 일례는 2개의 문서를 병합된 제3 문서로 서로 병합하는 것을 나타낸 것이다. 그렇지만, 이는 단지 2개의 문서들을 병합하는 것으로 제한되지 않는다. 그 대신에, 본 명세서에 예시된 개념 및 원리가 3개 이상의 문서들을 병합하는 것에 적용될 수 있다.
도 6은 본 발명의 양태들을 구현하는 예시적인 컴퓨팅 시스템(600)을 나타낸 것이다. 예를 들어, 컴퓨팅 시스템(600)은 이상에서 기술한 문서들(220, 240)과 같은 하나의 문서를 생성하고 및/또는 2개 이상의 문서들을 병합하는 데 사용되는 이상에서 기술한 문서 처리 시스템(100)일 수 있다. 가장 기본적인 구성에서, 컴퓨팅 시스템(600)는 통상적으로 적어도 하나의 처리 장치(602) 및 메모리(604)를 포함한다. 컴퓨팅 시스템의 정확한 구성 및 유형에 따라, 메모리(604)는 휘발성(RAM 등), 비휘발성(ROM, 플래쉬 메모리, 기타 등등), 또는 이 둘의 어떤 조합일 수 있다. 이러한 가장 기본적인 구성이 도 6에서 점선(606)으로 나타내어져 있다. 그에 부가하여, 컴퓨팅 시스템(600)은 또한 부가의 특징들/기능들도 가질 수 있다. 예를 들어, 컴퓨팅 시스템(600)은 또한 자기 또는 광 디스크 또는 테이프(이들로 제한되지 않음)를 비롯한 부가의 저장 장치(이동식 및/또는 비이동식)를 포함할 수 있다. 이러한 부가의 저장 장치가 도 6에서 이동식 저장 장치(608) 및 비이동식 저장 장치(610)로 도시되어 있다. 컴퓨터 저장 매체는 컴퓨터 판독가능 명령어, 데이터 구조, 프로그램 모듈 또는 기타 데이터 등의 정보를 저장하는 임의의 방법 또는 기술로 구현되는 휘발성 및 비휘발성, 이동식 및 비이동식 매체를 포함한다. 메모리(604), 이동식 저장 장치(608), 및 비이동식 저장 장치(610)가 모두 컴퓨터 저장 매체의 일례이다. 컴퓨터 저장 매체로는 RAM, ROM, EEPROM, 플래쉬 메모리 또는 기타 메모리 기술, CD-ROM, DVD(digital versatile disk) 또는 기타 광 저장 장치, 자기 카세트, 자기 테이프, 자기 디스크 저장 장치 또는 기타 자기 저장 장치, 또는 원하는 정보를 저장하는 데 사용될 수 있고 또 컴퓨팅 시스템(600)에 의해 액세스될 수 있는 임의의 다른 매체가 있지만, 이들로 제한되지 않는다. 임의의 이러한 컴퓨터 저장 매체가 컴퓨팅 시스템(600)의 일부일 수 있다.
컴퓨팅 시스템(600)은 또한 컴퓨팅 시스템이 다른 장치들과 통신을 할 수 있게 해주는 통신 연결(들)(612)을 포함할 수 있다. 통신 연결(들)(612)은 통신 매체의 일례이다. 통신 매체는 일반적으로 컴퓨터 판독가능 명령어, 데이터 구조, 프로그램 모듈 또는 기타 데이터를 반송파 또는 기타 전송 메카니즘 등의 피변조 데이터 신호(modulated data signal)에 구현하고 모든 정보 전달 매체를 포함한다. "피변조 데이터 신호"라는 용어는 신호의 특성들 중 하나 이상이 정보를 그 신호에 인코딩하는 방식으로 설정 또는 변경된 신호를 의미한다. 제한이 아닌 예로서, 통신 매체는 유선 네트워크 또는 직접 배선 연결(direct-wired connection) 등의 유선 매체와, 음향, RF, 적외선 및 기타 무선 매체 등의 무선 매체를 포함한다. 컴퓨터-판독가능 매체라는 용어는, 본 명세서에서 사용되는 바와 같이, 저장 매체를 의미한다.
컴퓨팅 시스템(600)은 또한 키보드, 마우스, 펜, 음성 입력 장치, 터치 입력 장치, 기타 등등의 입력 장치(들)(614)를 가질 수 있다. 디스플레이, 스피커, 프린터, 기타 등등의 출력 장치(들)(616)도 역시 포함되어 있을 수 있다. 이들 장치 모두는 본 기술 분야에서 잘 공지되어 있으며, 여기에서 상세히 기술할 필요가 없다.
어떤 실시예들에서, 메모리(604)는 운영 체제(620), 애플리케이션 프로그램(622), 기타 프로그램 모듈(624), 및 프로그램 데이터(626) 중 하나 이상을 포함하고 있다. 예를 들어, 애플리케이션 프로그램(622)은 2개 이상의 문서들을 생성 및/또는 병합하는 데 사용되는 텍스트 또는 워드 프로세싱 애플리케이션을 포함할 수 있다.
도 7은 제1 문서를 제2 문서와 병합하여 제3 문서를 발생하는 예시적인 방법(700)을 나타낸 것이다. 도시된 방법에서, 제1 문서 및 제2 문서 각각은 적어도 하나의 데이터 단위(data unit)를 포함한다. 각각의 데이터 단위는 단위 식별자(unit identifier) 및 편집 식별자(edit identifier)와 연관되어 있다. 문서 처리 애플리케이션은 제1 문서 및 제2 문서를 서로 병합하여 제3 문서를 발생하도록 구성되어 있다. 이상에서 기술한 바와 같이, 하나의 가능한 실시예에서, 문서들은 텍스트 문서이다.
동작(702)에서, 문서 처리 애플리케이션은 제1 문서의 데이터 단위들의 단위 식별자들을 획득한다. 하나의 가능한 실시예에서, 단위 식별자들은 제1 문서 내에 저장된다. 다른 가능한 실시예에서, 단위 식별자들은 제1 문서와 분리되어 있는 메타데이터 파일에 저장된다.
동작 흐름이 동작(704)으로 진행한다. 동작(704)에서, 문서 처리 애플리케이션은 제2 문서의 데이터 단위들의 단위 식별자들을 획득한다. 하나의 가능한 실시예에서, 단위 식별자들은 제2 문서 내에 저장된다. 다른 가능한 실시예에서, 단위 식별자들은 제2 문서와 분리되어 있는 메타데이터 파일에 저장된다.
동작 흐름이 동작(706)으로 진행한다. 동작(706)에서, 문서 처리 애플리케이션은 제1 문서 및 제2 문서 중 각 한쪽 문서의 단위 식별자들을 제1 문서 및 제2 문서 중 다른쪽 문서의 단위 식별자들과 비교하여, 단위 식별자들 각각이 일치하는 단위 식별자(matching unit identifier)인지 불일치하는 단위 식별자(non-matching unit identifier)인지를 판정한다. 일치하는 단위 식별자란 제1 문서에서의 단위 식별자가 제2 문서에서의 단위 식별자와 동일한 것으로 밝혀진다는 것을 의미한다. 이 일치하는 단위 식별자들은 제1 문서 및 제2 문서의 대응하는 데이터 단위들을 나타낸다. 불일치하는 단위 식별자란 제1 문서 및 제2 문서 중 한쪽 문서에서의 단위 식별자가 제1 문서 및 제2 문서 중 다른쪽 문서에서의 어떠한 단위 식별자와도 동일한 것으로 밝혀질 수 없다는 것을 의미한다. 불일치하는 단위 식별자들 각각은 제1 문서 및 제2 문서 중 다른쪽 문서의 어떤 데이터 단위에도 대응하지 않는 제1 문서 및 제2 문서 중 한쪽 문서의 데이터 단위를 나타낸다.
동작 흐름이 비교 동작(708)으로 진행한다. 비교 동작(708)은 제1 문서 및 제2 문서 중 한쪽 문서에서의 임의의 단위 식별자가 제1 문서 및 제2 문서 중 다른쪽 문서에서의 임의의 단위 식별자와 일치하는지 여부를 판정한다. 비교 동작(708)이 제1 문서 및 제2 문서 중 한쪽 문서에서의 단위 식별자가 제1 문서 및 제2 문서 중 다른쪽 문서에서의 어떤 단위 식별자와도 일치하는 않는 것으로 판정하는 경우, 동작 흐름이 "아니오"로 분기하여 동작 흐름이 동작(710)으로 진행한다. 동작(710)에서, 불일치하는 단위 식별자와 연관된 데이터 단위가 제3 문서에 바로 삽입된다.
비교 동작(708)이 제1 문서 및 제2 문서 중 한쪽 문서에서의 단위 식별자가 제1 문서 및 제2 문서 중 다른쪽 문서에서의 임의의 단위 식별자와 일치하는 것으로 판정하는 경우, 동작 흐름이 "예"로 분기하여 동작 흐름이 동작(712)으로 진행한다.
동작(712)에서, 문서 처리 애플리케이션은 일치하는 단위 식별자들과 연관된 데이터 단위들의 편집 식별자들을 비교하여 일치하는 편집 식별자들을 확인한다. 일치하는 편집 식별자들 각각은 제1 문서 및 제2 문서 중 한쪽 문서의 데이터 단위가 제1 문서 및 제2 문서 중 다른쪽 문서의 대응하는 데이터 단위와 일치한다는 것을 나타낸다. 반면에, 불일치하는 편집 식별자들 각각은 제1 문서 및 제2 문서 중 한쪽 문서의 데이터 단위가 제1 문서 및 제2 문서 중 다른쪽 문서의 대응하는 데이터 단위와 일치하지 않는다는 것을 나타낸다.
동작 흐름이 비교 동작(714)으로 진행한다. 비교 동작(714)은 일치하는 단위 식별자들과 연관된 데이터 단위들의 편집 식별자들이 서로 일치하는지 여부를 판정한다. 비교 동작(708)이 편집 식별자들이 서로 일치하는 것으로 판정하는 경우, 동작 흐름이 "예"로 분기하여 동작 흐름이 동작(710)으로 진행한다. 동작(710)에서, 일치하는 단위 식별자들 및 일치하는 편집 식별자들과 연관된 데이터 단위가 제3 문서에 바로 삽입된다.
비교 동작(714)이 일치하는 단위 식별자들과 연관된 데이터 단위들의 편집 식별자들이 서로 일치하지 않는 것으로 판정하는 경우, 동작 흐름이 "아니오"로 분기하여 동작 흐름이 동작(716)으로 진행한다. 동작(716)에서, 일치하는 단위 식별자들 및 불일치하는 편집 식별자들과 연관된 데이터 단위들이 제3 문서에 대한 데이터 단위로 병합된다. 이것은, 예를 들어, 3원 병합(three-way merge) 알고리즘과 같은 재래식 병합 프로세스를 사용하여 행해질 수 있다. 다른 재래식 병합 프로세스들도 사용될 수 있다.
도 7에 도시된 일례는 2개의 문서를 병합된 제3 문서로 서로 병합하는 방법을 나타낸 것이다. 그렇지만, 이는 2개의 문서를 병합하는 것으로 제한되지 않는다. 그 대신에, 본 명세서에 예시된 개념 및 원리가 3개 이상의 문서들을 병합하는 것에 적용될 수 있다.
도 8은 단위 식별자 및 편집 식별자를 문서의 각각의 데이터 단위에 할당하고 저장하는 예시적인 방법(800)을 나타낸 것이다. 상세하게는, 동작(802)에서, 단위 식별자가 문서의 각각의 데이터 단위에 할당된다. 단위 식별자는 고유하고 영속적이다. 단위 식별자는 데이터 단위의 수명 동안에 존속된다. 단위 식별자는 연관된 데이터 단위를 식별해주고 이 데이터 단위를 문서에서의 임의의 다른 데이터 단위들과 구분시켜준다.
동작 흐름이 동작(804)으로 진행한다. 동작(804)에서, 단위 식별자들이 문서 내에 저장된다. 하나의 가능한 실시예에서, 단위 식별자들이 문서 내의 메타데이터에 저장된다. 다른 가능한 실시예에서, 단위 식별자들이 문서와 분리되어 있는 메타데이터 파일에 저장된다.
동작 흐름이 동작(806)으로 진행한다. 동작(806)에서, 각각의 데이터 단위가 생성 또는 편집될 때마다, 편집 식별자가 문서의 그 데이터 단위에 할당된다. 이에 따라, 편집 식별자는 데이터 단위가 새로 생성 또는 편집되어 있다는 것을 나타낸다. 편집 식별자는 단위 식별자와 분리되어 있다. 편집 식별자가 데이터 단위에 할당될 때, 새로 할당된 편집 식별자는 데이터 단위의 이전의 편집 식별자(있는 경우)와 다르고 이 이전의 편집 식별자를 대체한다. 하나의 가능한 실시예에서, 편집 식별자는 랜덤하게 발생된다. 환언하면, 편집 식별자는 랜덤한 식별자로 할당될 수 있다.
동작 흐름이 동작(808)으로 진행한다. 동작(808)에서, 편집 식별자들이 문서 내에 저장된다. 하나의 가능한 실시예에서, 편집 식별자들이 문서 내의 메타데이터에 저장된다. 다른 가능한 실시예에서, 편집 식별자들이 문서와 분리되어 있는 메타데이터 파일에 저장된다. 또 다른 가능한 실시예에서, 사용자가 문서를 저장할 때, 편집 식별자들이 그 문서와 함께 저장된다.
도 9는 제1 문서를 제2 문서와 병합하여 병합된 문서를 발생하는 다른 예시적인 방법(900)을 나타낸 것이다. 문서 처리 애플리케이션은 제1 문서 및 제2 문서를 서로 병합하여 병합된 문서를 발생하도록 구성되어 있다. 방법(900)은 특히 제1 문서 및/또는 제2 문서와 연관되어 있는 문서 식별자를 갖지 않을지도 모르는 제1 문서 및 제2 문서를 처리하는 방법을 나타낸 것이다. 환언하면, 하나의 가능한 실시예에서, 방법(900)은 이전의 문서 처리 애플리케이션 버전들에 의해 생성 및/또는 편집된 문서들을 소급하여 처리하는 방법을 나타낸 것이다. 방법(900)은 문서 처리 애플리케이션이 이전의 애플리케이션 버전들과의 문서 후방 호환성(document backward compatibility)을 처리하는 방법을 나타낸 것이다.
동작 흐름이 동작(902)에서 시작한다. 동작(902)은 제1 문서가 제1 문서와 연관된 제1 문서 식별자를 갖는지 여부를 판정한다. 동작(902)이 제1 문서가 제1 문서와 연관된 제1 문서 식별자를 갖지 않는 것으로 판정하는 경우, 동작 흐름이 "아니오"로 분기하여 동작 흐름이 동작(914)(이하에서 상세히 기술함)으로 진행한다. 동작(902)이 제1 문서가 제1 문서와 연관된 제1 문서 식별자를 갖는 것으로 판정하는 경우, 동작 흐름이 "예"로 분기하여 동작 흐름이 동작(904)으로 진행한다. 동작(904)에서, 제1 문서 식별자가 제1 문서로부터 획득된다.
동작 흐름이 동작(906)으로 진행한다. 동작(906)은 제2 문서가 제2 문서와 연관된 제2 문서 식별자를 갖는지 여부를 판정한다. 동작(906)이 제2 문서가 제2 문서와 연관된 제2 문서 식별자를 갖지 않는 것으로 판정하는 경우, 동작 흐름이 "아니오"로 분기하여 동작 흐름이 동작(914)으로 진행한다. 동작(906)이 제2 문서가 제2 문서와 연관된 제2 문서 식별자를 갖는 것으로 판정하는 경우, 동작 흐름이 "예"로 분기하여 동작 흐름이 동작(908)으로 진행한다. 동작(908)에서, 제2 문서 식별자가 제2 문서로부터 획득된다.
동작 흐름이 비교 동작(910)으로 진행한다. 비교 동작(910)은 제1 문서의 제1 문서 식별자가 제2 문서의 제2 문서 식별자와 일치하는지 여부를 판정한다. 비교 동작(910)이 제1 문서의 제1 문서 식별자가 제2 문서의 제2 문서 식별자와 일치하는 것으로 판정하는 경우, 동작 흐름이 "예"로 분기하여 동작 흐름이 동작(912)으로 진행한다. 동작(912)에서, 이상에서 도 7 및 도 8에 기술한 바와 같이, 가속 문서 병합(accelerated document merge)이 수행된다. 비교 동작(910)이 제1 문서의 제1 문서 식별자가 제2 문서의 제2 문서 식별자와 일치하지 않는 것으로 판정하는 경우, 동작 흐름이 "아니오"로 분기하여 동작 흐름이 동작(914)으로 진행한다. 동작(914)에서, 종래의 문서 병합이 수행된다.
종래의 문서 병합이 동작(914)에서 완료된 후에, 동작 흐름이 동작(916)으로 진행한다. 동작(916)에서, 문서 식별자가 병합된 문서에 할당된다. 문서 식별자는 고유하고 영속적이다. 문서 식별자는 병합된 문서의 수명 동안에 존속된다.
동작 흐름이 동작(918)으로 진행한다. 동작(918)에서, 병합된 문서에서의 각각의 데이터 단위가 데이터 단위의 수명 동안에 존속되는 고유의 단위 식별자를 할당받는다. 단위 식별자는 연관된 데이터 단위를 식별해주고 이 데이터 단위를 병합된 문서에서의 임의의 다른 데이터 단위들과 구분시켜준다.
동작 흐름이 동작(920)으로 진행한다. 동작(920)에서, 단위 식별자들이 병합된 문서 내에 저장된다. 하나의 가능한 실시예에서, 단위 식별자들이 문서 내의 메타데이터에 저장된다. 다른 가능한 실시예에서, 단위 식별자들이 병합된 문서와 분리되어 있는 메타데이터 파일에 저장된다.
동작 흐름이 동작(922)으로 진행한다. 동작(922)에서, 편집 식별자가 데이터 단위들 각각에 할당된다. 편집 식별자는 데이터 단위가 새로 생성 또는 편집되어 있다는 것을 나타낸다. 편집 식별자는 단위 식별자와 분리되어 있다.
동작 흐름이 동작(924)으로 진행한다. 동작(924)에서, 편집 식별자들이 병합된 문서 내에 저장된다. 하나의 가능한 실시예에서, 편집 식별자들이 병합된 문서 내의 메타데이터에 저장된다. 다른 가능한 실시예에서, 편집 식별자들이 병합된 문서와 분리되어 있는 메타데이터 파일에 저장된다. 또 다른 가능한 실시예에서, 사용자가 문서를 저장할 때 편집 식별자들이 저장된다. 그에 부가하여, 편집 식별자는 랜덤한 식별자로 할당될 수 있다.
동작들(916 내지 924) 후에, 병합된 문서는 나중에 편집 및/또는 복제될 때 가속 병합(accelerated merge)을 위한 준비가 된 문서로 변환된다. 예를 들어, 병합된 문서가 한 사용자에 의해 제4 문서로 수정되고 또 하나의 사용자에 의해 제5 문서로 수정되는 경우, 제4 문서 및 제5 문서가 이상에서 기술한 바와 같은 가속 병합 방법으로 병합될 수 있다.
도 9에 도시된 일례는 2개의 문서를 병합된 제3 문서로 서로 병합하는 방법을 나타낸 것이다. 그렇지만, 이는 2개의 문서만을 병합하는 것으로 제한되지 않는다. 그 대신에, 본 명세서에 예시된 개념 및 원리가 3개 이상의 문서들을 병합하는 것에 적용될 수 있다.
발명 대상이 구조적 특징들 및/또는 방법적 동작들에 특정된 언어로 기술되어 있지만, 첨부된 청구항들에 정의된 발명 대상이 이상에서 기술한 특정의 특징들 또는 동작들로 반드시 제한되는 것은 아니라는 것을 잘 알 것이다. 오히려, 이상에서 기술한 특정의 특징들 및 동작들은 청구항들을 구현하는 예시적인 형태로서 개시되어 있다.

Claims (20)

  1. 제1 문서 및 제2 문서를 포함하는 적어도 두 개의 문서들을 병합하여 제3 문서를 생성하는 방법으로서, 상기 방법은 컴퓨팅 시스템에 의해 수행되며,
    상기 제1 문서 및 상기 제2 문서 각각은 하나 이상의 데이터 단위들(data unit)을 포함하고, 각각의 데이터 단위는 단위 식별자(unit identifier) 및 편집 식별자(edit identifier)와 연관되어 있으며,
    상기 방법은,
    상기 제1 문서의 데이터 단위들과 연관된 단위 식별자들을 획득하는 단계,
    상기 제2 문서의 데이터 단위들과 연관된 단위 식별자들을 획득하는 단계,
    상기 제1 문서 및 상기 제2 문서 중 한쪽 문서의 단위 식별자들을 상기 제1 문서 및 상기 제2 문서 중 다른쪽 문서의 단위 식별자들과 비교하여 상기 단위 식별자들 각각이 일치하는 단위 식별자(matching unit identifier)인지 불일치하는 단위 식별자(non-matching unit identifier)인지를 판정하는 단계 - 상기 일치하는 단위 식별자들 각각은 상기 제1 문서 및 상기 제2 문서의 대응하는 데이터 단위들을 나타내고, 상기 불일치하는 단위 식별자들 각각은 상기 제1 문서 및 상기 제2 문서 중 다른쪽 문서의 어떤 데이터 단위에도 대응하지 않는 상기 제1 문서 및 상기 제2 문서 중 한쪽 문서의 데이터 단위를 나타냄 -,
    상기 일치하는 단위 식별자들과 연관된 데이터 단위들의 편집 식별자들을 비교하여 일치하는 편집 식별자들(matching edit identifier)을 확인하는 단계 - 상기 일치하는 편집 식별자들 각각은 상기 제1 문서 및 상기 제2 문서 중 한쪽 문서의 데이터 단위가 상기 제1 문서 및 상기 제2 문서 중 다른쪽 문서의 대응하는 데이터 단위와 일치한다는 것을 나타냄 -,
    불일치하는 단위 식별자들과 연관되어 있는 상기 제1 문서 및 상기 제2 문서의 데이터 단위들을 상기 제3 문서에 바로 삽입하는 단계,
    일치하는 단위 식별자들 및 일치하는 편집 식별자들과 연관되어 있는 상기 제1 문서 및 상기 제2 문서의 데이터 단위들을 상기 제3 문서에 바로 삽입하는 단계, 및
    일치하는 단위 식별자들 및 불일치하는 편집 식별자들과 연관되어 있는 상기 제1 문서의 데이터 단위 및 상기 제2 문서의 데이터 단위를 병합하여 생성된 새로운 데이터 단위를 상기 제3 문서에 삽입하는 단계
    를 포함하는 방법.
  2. 제1항에 있어서,
    상기 제1 문서의 데이터 단위들의 단위 식별자들은 상기 제1 문서 내에 저장되는
    방법.
  3. 제1항에 있어서,
    상기 제1 문서의 하나의 데이터 단위가 편집되는 경우 상기 하나의 데이터 단위에 새로운 편집 식별자를 할당하는 단계, 및
    상기 새로운 편집 식별자를 상기 제1 문서 내에 저장하는 단계
    를 더 포함하는 방법.
  4. 제3항에 있어서,
    상기 새로운 편집 식별자를 저장하는 단계는 사용자가 상기 제1 문서를 저장할 때 상기 새로운 편집 식별자를 저장하는 단계를 포함하는
    방법.
  5. 제3항에 있어서,
    상기 새로운 편집 식별자는 랜덤하게 생성되는
    방법.
  6. 제1항에 있어서,
    상기 제1 문서의 데이터 단위들의 단위 식별자들을 획득하는 단계는 상기 제1 문서의 단락들의 단락 식별자들을 획득하는 단계를 포함하는
    방법.
  7. 문서 처리 시스템으로서,
    시스템 메모리,
    적어도 2개의 문서들을 서로 병합하여 제3 문서를 생성하도록 구성되는 문서 처리 애플리케이션을 생성하도록 상기 시스템 메모리에 저장된 명령어들을 수행하는 처리 장치,
    상기 문서 처리 애플리케이션에 의해 처리되도록 구성되는 제1 문서, 및
    상기 문서 처리 애플리케이션에 의해 처리되도록 구성되는, 적어도 하나의 데이터 단위를 포함하는 제2 문서를 포함하되,
    상기 제1 문서는 내용(content) 및 메타데이터(metadata)를 저장하고,
    상기 제1 문서의 상기 내용은 적어도 하나의 데이터 단위를 포함하며,
    상기 제1 문서의 상기 메타데이터는 각각의 데이터 단위와 연관된 단위 식별자 및 편집 식별자를 포함하고,
    각각의 데이터 단위의 상기 단위 식별자는 데이터 단위가 생성될 때 생성되며,
    각각의 데이터 단위의 상기 편집 식별자는 데이터 단위에 대한 수정이 저장될 때 생성되고,
    상기 문서 처리 애플리케이션은,
    상기 제1 문서의 단위 식별자들을 상기 제2 문서의 단위 식별자들에 비교하여 상기 단위 식별자들 각각이 일치하는 단위 식별자인지 불일치하는 단위 식별자인지를 판정하고 - 상기 일치하는 단위 식별자들 각각은 상기 제1 문서 및 상기 제2 문서의 대응하는 데이터 단위들을 나타내고, 상기 불일치하는 단위 식별자들 각각은 상기 제1 문서 및 상기 제2 문서 중 다른쪽 문서의 어떤 데이터 단위에도 대응하지 않는 상기 제1 문서 및 상기 제2 문서 중 한쪽 문서의 데이터 단위를 나타냄 -,
    상기 일치하는 단위 식별자들과 연관된 데이터 단위들의 편집 식별자들을 비교하여 일치하는 편집 식별자들을 확인하고 - 상기 일치하는 편집 식별자들 각각은 상기 제1 문서 및 상기 제2 문서 중 한쪽 문서의 데이터 단위가 상기 제1 문서 및 상기 제2 문서 중 다른쪽 문서의 대응하는 데이터 단위와 일치한다는 것을 나타냄 -,
    불일치하는 단위 식별자들과 연관되어 있는 상기 제1 문서 및 상기 제2 문서의 데이터 단위들을 상기 제3 문서에 바로 삽입하고,
    일치하는 단위 식별자들 및 일치하는 편집 식별자들과 연관되어 있는 상기 제1 문서 및 상기 제2 문서의 데이터 단위들을 상기 제3 문서에 바로 삽입하며,
    일치하는 단위 식별자들 및 불일치하는 편집 식별자들과 연관되어 있는 상기 제1 문서의 데이터 단위 및 상기 제2 문서의 데이터 단위를 병합하여 생성된 새로운 데이터 단위를 상기 제3 문서에 삽입하도록 구성되는,
    문서 처리 시스템.
  8. 제7항에 있어서,
    상기 문서 처리 애플리케이션은 각각의 데이터 단위가 생성될 때 그 데이터 단위의 단위 식별자를 생성하도록 구성되는
    문서 처리 시스템.
  9. 제7항에 있어서,
    상기 문서 처리 애플리케이션은 상기 수정이 상기 제1 문서 내에 저장될 때 각각의 데이터 단위의 편집 식별자를 생성하도록 구성되는
    문서 처리 시스템.
  10. 제7항에 있어서,
    상기 제2 문서와 연관되며 상기 제2 문서와 별도로 저장되는 메타데이터 파일- 상기 메타데이터 파일은 상기 제2 문서의 내용과 관련된 메타데이터를 포함하며, 상기 메타데이터 파일의 상기 메타데이터는 상기 메타데이터가 어느 데이터 단위와 관련되어 있는지를 나타내는 단위 식별자를 포함함 -을 더 포함하는 문서 처리 시스템.
  11. 제10항에 있어서,
    상기 메타데이터 파일에 저장된 상기 메타데이터는 상기 메타데이터에 포함된 상기 단위 식별자에 의해 표시되는 데이터 단위와 연관되어 있는
    문서 처리 시스템.
  12. 제7항에 있어서,
    상기 문서는 텍스트 문서인
    문서 처리 시스템.
  13. 제7항에 있어서,
    상기 데이터 단위는 단락(paragraph)인
    문서 처리 시스템.
  14. 제1 문서 및 제2 문서로부터 병합된 문서를 생성하는 방법을 구현하는 컴퓨터-실행가능 명령어들을 갖는 컴퓨터-판독가능 저장 매체로서,
    상기 방법은,
    상기 제1 문서가 제1 문서 식별자를 갖는지 여부를 판정하는 단계 - 상기 제1 문서 식별자는 상기 제1 문서를 식별함 -,
    상기 제1 문서가 제1 문서 식별자를 갖는 경우, 상기 제1 문서 식별자를 획득하는 단계,
    상기 제2 문서가 제2 문서 식별자를 갖는지 여부를 판정하는 단계 - 상기 제2 문서 식별자는 상기 제2 문서를 식별함 -,
    상기 제2 문서가 제2 문서 식별자를 갖는 경우, 상기 제2 문서 식별자를 획득하는 단계,
    상기 제1 문서의 상기 제1 문서 식별자를 상기 제2 문서의 상기 제2 문서 식별자와 비교하는 단계,
    상기 제1 문서 및 상기 제2 문서 중 어느 것도 문서 식별자를 갖지 않는 경우, 상기 제1 문서 및 상기 제2 문서에 대해 데이터 단위들의 병합을 수행하는 재래식 병합(conventional merge)을 수행하여 병합된 문서를 생성하는 단계,
    상기 제1 문서의 상기 제1 문서 식별자가 상기 제2 문서의 상기 제2 문서 식별자와 다른 경우, 상기 제1 문서 및 상기 제2 문서에 대해 데이터 단위들의 병합을 수행하는 재래식 병합(conventional merge)을 수행하여 병합된 문서를 발생하는 단계, 및
    상기 제1 문서의 상기 제1 문서 식별자가 상기 제2 문서의 상기 제2 문서 식별자와 일치하는 경우, 상기 제1 문서 및 상기 제2 문서에 대해 데이터 단위들의 병합을 수행하지 않는 가속 병합(accelerated merge)을 수행하여 병합된 문서를 생성하는 단계
    를 포함하는
    컴퓨터-판독가능 저장 매체.
  15. 제14항에 있어서,
    상기 가속 병합을 수행하는 단계는,
    상기 제1 문서의 각각의 데이터 단위의 고유하고 영속적인 식별자들을 상기 제2 문서의 각각의 데이터 단위의 고유하고 영속적인 식별자들과 비교하여 상기 제1 문서의 어느 데이터 단위들이 상기 제2 문서의 데이터 단위들과 일치하는지를 식별하는 단계,
    상기 일치하는 것으로 식별된 데이터 단위들을 데이터 단위들의 병합 없이 상기 병합된 문서에 바로 삽입하는 것에 의해 상기 병합된 문서에 대한 데이터 단위들을 생성하는 단계, 및
    상기 제1 문서 및 상기 제2 문서 중 다른쪽 문서의 어떤 데이터 단위와도 일치하지 않는 상기 제1 문서 및 상기 제2 문서 중 한쪽 문서의 각각의 데이터 단위를 재래식 병합을 사용해서 병합하여 생성된 새로운 데이터 단위들을 상기 병합된 문서에 삽입하는 것에 의해 상기 병합된 문서의 데이터 단위들을 추가적으로 생성하는 단계
    를 포함하는
    컴퓨터-판독가능 저장 매체.
  16. 제15항에 있어서,
    상기 제1 문서의 각각의 데이터 단위의 고유하고 영속적인 식별자들을 상기 제2 문서의 각각의 데이터 단위의 고유하고 영속적인 식별자들과 비교하는 단계는,
    상기 제1 문서의 각각의 데이터 단위의 단위 식별자 및 편집 식별자를 상기 제2 문서의 각각의 데이터 단위의 단위 식별자 및 편집 식별자와 비교하는 단계
    를 포함하는
    컴퓨터-판독가능 저장 매체.
  17. 제14항에 있어서,
    상기 방법은,
    상기 제1 문서 및 상기 제2 문서 중 어느 것도 문서 식별자를 갖지 않는 경우, 상기 병합된 문서의 데이터 단위들 각각에 고유하고 영속적인 식별자들을 부가하는 단계, 및
    상기 제1 문서의 문서 식별자가 상기 제2 문서의 문서 식별자와 다른 경우, 상기 병합된 문서의 데이터 단위들 각각에 고유하고 영속적인 식별자들을 부가하는 단계
    를 더 포함하는
    컴퓨터-판독가능 저장 매체.
  18. 제17항에 있어서,
    상기 병합된 문서의 데이터 단위들 각각에 고유하고 영속적인 식별자들을 부가하는 단계는,
    상기 병합된 문서 내에 상기 고유하고 영속적인 식별자들을 저장하는 단계
    를 포함하는
    컴퓨터-판독가능 저장 매체.
  19. 삭제
  20. 삭제
KR1020107012220A 2007-12-06 2008-11-18 문서 병합 KR101726879B1 (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US11/951,973 US8028229B2 (en) 2007-12-06 2007-12-06 Document merge
US11/951,973 2007-12-06
PCT/US2008/083862 WO2009076010A1 (en) 2007-12-06 2008-11-18 Document merge

Publications (2)

Publication Number Publication Date
KR20100087356A KR20100087356A (ko) 2010-08-04
KR101726879B1 true KR101726879B1 (ko) 2017-04-13

Family

ID=40722707

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020107012220A KR101726879B1 (ko) 2007-12-06 2008-11-18 문서 병합

Country Status (12)

Country Link
US (1) US8028229B2 (ko)
EP (1) EP2215560A4 (ko)
JP (1) JP5502745B2 (ko)
KR (1) KR101726879B1 (ko)
CN (1) CN101889276B (ko)
AU (1) AU2008335565B2 (ko)
BR (1) BRPI0819718A2 (ko)
MX (1) MX2010005934A (ko)
MY (1) MY157581A (ko)
RU (1) RU2481624C2 (ko)
TW (1) TWI379208B (ko)
WO (1) WO2009076010A1 (ko)

Families Citing this family (50)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP5211557B2 (ja) * 2007-06-15 2013-06-12 富士通株式会社 Web会議支援プログラム、該プログラムを記録した記録媒体、Web会議支援装置、およびWeb会議支援方法
US7941399B2 (en) 2007-11-09 2011-05-10 Microsoft Corporation Collaborative authoring
US8150842B2 (en) * 2007-12-12 2012-04-03 Google Inc. Reputation of an author of online content
US8825758B2 (en) 2007-12-14 2014-09-02 Microsoft Corporation Collaborative authoring modes
US8301588B2 (en) 2008-03-07 2012-10-30 Microsoft Corporation Data storage for file updates
US8352870B2 (en) 2008-04-28 2013-01-08 Microsoft Corporation Conflict resolution
US8825594B2 (en) 2008-05-08 2014-09-02 Microsoft Corporation Caching infrastructure
US8429753B2 (en) 2008-05-08 2013-04-23 Microsoft Corporation Controlling access to documents using file locks
US8417666B2 (en) 2008-06-25 2013-04-09 Microsoft Corporation Structured coauthoring
US8656290B1 (en) * 2009-01-08 2014-02-18 Google Inc. Realtime synchronized document editing by multiple users
US9396279B1 (en) 2009-02-17 2016-07-19 Jpmorgan Chase Bank, Na Collaborative virtual markup
US8346768B2 (en) 2009-04-30 2013-01-01 Microsoft Corporation Fast merge support for legacy documents
US20100310192A1 (en) * 2009-06-05 2010-12-09 Anjaneyulu Seetha Rama Kuchibhotla Document storage system
JP2011039997A (ja) * 2009-08-18 2011-02-24 Fuji Xerox Co Ltd 情報処理装置及びコンピュータプログラム
US8286077B2 (en) * 2009-12-03 2012-10-09 Microsoft Corporation Remote batch editing of formatted text via an HTML editor
JP5602424B2 (ja) 2009-12-24 2014-10-08 キヤノン株式会社 情報処理装置、情報処理方法及びプログラム
CN101729671A (zh) * 2009-12-31 2010-06-09 宇龙计算机通信科技(深圳)有限公司 一种终端、备份文件管理的方法及系统
US20110246340A1 (en) * 2010-04-02 2011-10-06 Tracelink, Inc. Method and system for collaborative execution of business processes
US20110258534A1 (en) * 2010-04-16 2011-10-20 Microsoft Corporation Declarative definition of complex user interface state changes
US8875139B2 (en) 2010-07-30 2014-10-28 Mavro Imaging, Llc Method and process for tracking documents by monitoring each document's electronic processing status and physical location
CN103238150B (zh) 2010-11-02 2016-08-17 谷歌公司 由多个用户对博客的实时同步文档编辑
US11611595B2 (en) 2011-05-06 2023-03-21 David H. Sitrick Systems and methodologies providing collaboration among a plurality of computing appliances, utilizing a plurality of areas of memory to store user input as associated with an associated computing appliance providing the input
US10402485B2 (en) 2011-05-06 2019-09-03 David H. Sitrick Systems and methodologies providing controlled collaboration among a plurality of users
US20130036348A1 (en) * 2011-06-27 2013-02-07 Hazard James G Systems and Methods for Identifying a Standard Document Component in a Community and Generating a Document Containing the Standard Document Component
CN102323927A (zh) * 2011-07-29 2012-01-18 无锡永中软件有限公司 一种文档合并方法
US9229919B1 (en) * 2012-03-19 2016-01-05 Apttex Corporation Reconciling smart fields
US10013429B2 (en) 2012-03-29 2018-07-03 Tracelink, Inc. Computer-implemented methods and systems for facilitating business-to-business transactions on a collaborative business network and for system integration message routing and identifier mapping utilizing a shared workspace mechanism
US9411844B2 (en) 2012-03-29 2016-08-09 Tracelink, Inc. Methods and systems for managing distributed concurrent data updates of business objects
KR101397754B1 (ko) * 2012-08-06 2014-05-21 지승환 전자적 서적의 통합 제공방법
US20140082473A1 (en) * 2012-09-14 2014-03-20 David H. Sitrick Systems And Methodologies Of Event Content Based Document Editing, Generating Of Respective Events Comprising Event Content, Then Defining A Selected Set Of Events, And Generating Of A Display Presentation Responsive To Processing Said Selected Set Of Events, For One To Multiple Users
US20140082472A1 (en) * 2012-09-14 2014-03-20 David H. Sitrick Systems And Methodologies For Event Processing Of Events For Edits Made Relative To A Presentation, Selecting A Selected Set Of Events; And Generating A Modified Presentation Of The Events In The Selected Set
US9946691B2 (en) * 2013-01-30 2018-04-17 Microsoft Technology Licensing, Llc Modifying a document with separately addressable content blocks
US9460073B2 (en) * 2013-02-27 2016-10-04 Google Inc. Systems and methods for mutations and operational transforms in a collaborative spreadsheet environment
CN103729464A (zh) * 2014-01-15 2014-04-16 北京神州普惠科技股份有限公司 一种报告文档的汇总方法
JP2015158729A (ja) * 2014-02-21 2015-09-03 東芝テック株式会社 情報提供装置、及び、情報提供プログラム
US10318618B2 (en) * 2014-06-18 2019-06-11 Microsoft Technology Licensing, Llc Consistent views of partitioned data in eventually consistent systems
GB2529172A (en) * 2014-08-12 2016-02-17 Ibm Functional component history tracking
US10044662B1 (en) 2014-11-18 2018-08-07 Amazon Technologies, Inc. Email conversation linking
US11902232B1 (en) * 2014-11-18 2024-02-13 Amazon Technologies, Inc. Email conversation linking
US11093125B1 (en) 2014-12-09 2021-08-17 Amazon Technologies, Inc. Email conversation linking
US10078478B2 (en) * 2015-09-29 2018-09-18 Ricoh Company, Ltd. Merging print data and metadata for a print job processed in a print workflow
CN106020677A (zh) * 2016-04-27 2016-10-12 努比亚技术有限公司 一种信息处理方法及移动终端
TWI621952B (zh) * 2016-12-02 2018-04-21 財團法人資訊工業策進會 比較表格自動產生方法、裝置及其電腦程式產品
US10528342B2 (en) 2017-10-16 2020-01-07 Western Digital Technologies, Inc. Function tracking for source code files
CN108021702A (zh) * 2017-12-26 2018-05-11 百度在线网络技术(北京)有限公司 基于LSM-tree的分级存储方法、装置、OLAP数据库系统及介质
US11334644B2 (en) * 2019-08-14 2022-05-17 Christopher J. Jerdonek Methods and systems for three-way merges of object representations
KR102172732B1 (ko) * 2019-08-31 2020-11-02 한화시스템 주식회사 용량 단위의 pdf 문서 변환 장치 및 방법
US10922469B1 (en) * 2020-06-30 2021-02-16 Cadence Design Systems, Inc. Methods and systems of enabling concurrent editing of hierarchical electronic circuit layouts
TWI849484B (zh) * 2022-08-24 2024-07-21 大陸商北京歐錸德微電子技術有限公司 代碼文件與驗證模擬之管理方法及電路模塊設計驗證系統
KR102538108B1 (ko) * 2023-03-24 2023-05-30 주식회사 올빅뎃 인공지능을 활용한 문서 구조 정보 추출 및 문서 병합 장치

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2007257629A (ja) 2006-03-22 2007-10-04 Internatl Business Mach Corp <Ibm> 共同で作成されるマスター・ドキュメントにサブ・ドキュメントをマージするためのシステムおよび方法

Family Cites Families (137)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US761784A (en) * 1903-10-30 1904-06-07 Henry M Quackenbush Target.
US4855580A (en) * 1987-11-20 1989-08-08 Recognition Equipment Incorporated Data merge document processing method
US5107443A (en) * 1988-09-07 1992-04-21 Xerox Corporation Private regions within a shared workspace
US5799320A (en) * 1989-08-23 1998-08-25 John R. Klug Remote multiple-user editing system and method
US5142619A (en) * 1990-02-21 1992-08-25 International Business Machines Corporation Method and apparatus for visually comparing files in a data processing system
CA2039652C (en) * 1990-05-30 1996-12-24 Frank Zdybel, Jr. Hardcopy lossless data storage and communications for electronic document processing systems
US5313394A (en) * 1990-12-11 1994-05-17 Barbara Clapp Document assembly customization system for modifying a source instrument including text and decisional commands
US5671428A (en) 1991-08-28 1997-09-23 Kabushiki Kaisha Toshiba Collaborative document processing system with version and comment management
US5339389A (en) * 1991-12-31 1994-08-16 International Business Machines Corporation User selectable lock regions
JPH0827754B2 (ja) 1992-05-21 1996-03-21 インターナショナル・ビジネス・マシーンズ・コーポレイション コンピュータシステムにおけるファイル管理方法及びファイル管理システム
US5555388A (en) 1992-08-20 1996-09-10 Borland International, Inc. Multi-user system and methods providing improved file management by reading
US5978784A (en) 1992-10-05 1999-11-02 Expert Systems Publishing Co. Computer-implemented decision management system with dynamically generated questions and answer choices
US5579223A (en) * 1992-12-24 1996-11-26 Microsoft Corporation Method and system for incorporating modifications made to a computer program into a translated version of the computer program
JP3053153B2 (ja) * 1993-09-20 2000-06-19 株式会社日立製作所 文書管理システムのアプリケーション起動方法
US6760840B1 (en) * 1994-03-15 2004-07-06 Kabushiki Kaisha Toshiba File editing system and shared file editing system with file content secrecy, file version management, and asynchronous editing
US6181837B1 (en) * 1994-11-18 2001-01-30 The Chase Manhattan Bank, N.A. Electronic check image storage and retrieval system
US5751958A (en) * 1995-06-30 1998-05-12 Peoplesoft, Inc. Allowing inconsistency in a distributed client-server application
US5729734A (en) 1995-11-03 1998-03-17 Apple Computer, Inc. File privilege administration apparatus and methods
US6006239A (en) 1996-03-15 1999-12-21 Microsoft Corporation Method and system for allowing multiple users to simultaneously edit a spreadsheet
US5781732A (en) * 1996-06-20 1998-07-14 Object Technology Licensing Corp. Framework for constructing shared documents that can be collaboratively accessed by multiple users
US5787262A (en) * 1996-06-26 1998-07-28 Microsoft Corporation System and method for distributed conflict resolution between data objects replicated across a computer network
US6202085B1 (en) * 1996-12-06 2001-03-13 Microsoft Corportion System and method for incremental change synchronization between multiple copies of data
US6708221B1 (en) * 1996-12-13 2004-03-16 Visto Corporation System and method for globally and securely accessing unified information in a computer network
US6065026A (en) * 1997-01-09 2000-05-16 Document.Com, Inc. Multi-user electronic document authoring system with prompted updating of shared language
JP2996197B2 (ja) 1997-02-14 1999-12-27 日本電気株式会社 文書共有管理方法
US6233600B1 (en) 1997-07-15 2001-05-15 Eroom Technology, Inc. Method and system for providing a networked collaborative work environment
US6209010B1 (en) * 1997-07-18 2001-03-27 Varis Corporation Computer implemented method for wrapping data to an arbitrary path defined by a page description language
US6240414B1 (en) * 1997-09-28 2001-05-29 Eisolutions, Inc. Method of resolving data conflicts in a shared data environment
US5946700A (en) * 1997-10-31 1999-08-31 Oracle Corporation Method and apparatus for preserving non-current information that can be overwritten in a computer file
US6327611B1 (en) 1997-11-12 2001-12-04 Netscape Communications Corporation Electronic document routing system
US6067551A (en) * 1997-11-14 2000-05-23 Microsoft Corporation Computer implemented method for simultaneous multi-user editing of a document
US6073161A (en) * 1997-12-16 2000-06-06 International Business Machines Corporation Method and apparatus for determining editing conflicts in a multi-authoring system
US6000945A (en) 1998-02-09 1999-12-14 Educational Testing Service System and method for computer based test assembly
US6088702A (en) * 1998-02-25 2000-07-11 Plantz; Scott H. Group publishing system
US6275935B1 (en) * 1998-04-17 2001-08-14 Thingworld.Com, Llc Systems and methods for locking interactive objects
US6209128B1 (en) * 1998-06-05 2001-03-27 International Business Machines Corporation Apparatus and method for providing access to multiple object versions
US6341291B1 (en) * 1998-09-28 2002-01-22 Bentley Systems, Inc. System for collaborative engineering using component and file-oriented tools
US6363352B1 (en) * 1998-11-13 2002-03-26 Microsoft Corporation Automatic scheduling and formation of a virtual meeting over a computer network
US6342906B1 (en) * 1999-02-02 2002-01-29 International Business Machines Corporation Annotation layer for synchronous collaboration
US6687878B1 (en) * 1999-03-15 2004-02-03 Real Time Image Ltd. Synchronizing/updating local client notes with annotations previously made by other clients in a notes database
US7007235B1 (en) * 1999-04-02 2006-02-28 Massachusetts Institute Of Technology Collaborative agent interaction control and synchronization system
US6317777B1 (en) 1999-04-26 2001-11-13 Intel Corporation Method for web based storage and retrieval of documents
US6438548B1 (en) * 1999-06-30 2002-08-20 International Business Machines Corporation Method of and system for managing documents in a bandwidth constrained environment
US6327584B1 (en) 1999-07-30 2001-12-04 Hewlett-Packard Company Apparatus and method for using version control to dynamically update files while the files are available for access
US6560620B1 (en) * 1999-08-03 2003-05-06 Aplix Research, Inc. Hierarchical document comparison system and method
JP3915331B2 (ja) * 1999-08-10 2007-05-16 富士ゼロックス株式会社 共有ドキュメントの編集装置及び編集方法
US6516339B1 (en) 1999-08-18 2003-02-04 International Business Machines Corporation High performance client/server editor
JP2001092707A (ja) 1999-09-24 2001-04-06 Nec Corp 情報処理システム、構造化文書処理システム、その更新方法及びその更新プログラムを記録した記録媒体
AU3267901A (en) 1999-11-05 2001-05-14 Attivo Software, Inc. Action communication and synchronization for documents accessed by multiple users
US6751618B1 (en) * 1999-11-24 2004-06-15 Unisys Corporation Method and apparatus for a web application server to upload multiple files and invoke a script to use the files in a single browser request
AU3435801A (en) * 1999-12-16 2001-06-25 Perimed Compliance Corporation System and method for electronic archiving and retrieval of medical documents
US6529905B1 (en) * 2000-01-11 2003-03-04 Frontline Solutions, Inc. Method and system for allowing multiple users to edit a hierarchical data structure
JP3879350B2 (ja) * 2000-01-25 2007-02-14 富士ゼロックス株式会社 構造化文書処理システム及び構造化文書処理方法
KR100331685B1 (ko) 2000-04-04 2002-04-09 오길록 문서 공동 편집 장치 및 그 방법
EP1290575B1 (en) * 2000-05-16 2005-06-08 O'Carroll, Garrett A document processing system and method
US6931592B1 (en) * 2000-05-22 2005-08-16 Microsoft Corporation Reviewing and merging electronic documents
AU2001287421A1 (en) * 2000-08-21 2002-03-04 Thoughtslinger Corporation Simultaneous multi-user document editing system
US7080076B1 (en) * 2000-11-28 2006-07-18 Attenex Corporation System and method for efficiently drafting a legal document using an authenticated clause table
US7058663B2 (en) * 2001-03-13 2006-06-06 Koninklijke Philips Electronics, N.V. Automatic data update
US6757678B2 (en) * 2001-04-12 2004-06-29 International Business Machines Corporation Generalized method and system of merging and pruning of data trees
US7409424B2 (en) * 2001-04-24 2008-08-05 Parker James A Electronic mail file access system
US7117278B2 (en) * 2001-07-12 2006-10-03 Sun Micro Systems, Inc. Method for merging a plurality of data streams into a single data stream
US7149776B1 (en) 2001-08-31 2006-12-12 Oracle International Corp. System and method for real-time co-browsing
US20040205539A1 (en) * 2001-09-07 2004-10-14 Mak Mingchi Stephen Method and apparatus for iterative merging of documents
US20030097410A1 (en) * 2001-10-04 2003-05-22 Atkins R. Travis Methodology for enabling multi-party collaboration across a data network
JP2003150586A (ja) * 2001-11-12 2003-05-23 Ntt Docomo Inc 文書変換システム、文書変換方法及び文書変換プログラムを記録したコンピュータ読み取り可能な記録媒体
JP4215425B2 (ja) * 2001-11-21 2009-01-28 日本電気株式会社 文章管理システム、その管理方法及びそのプログラム
KR100437790B1 (ko) 2001-12-05 2004-06-30 엘지전자 주식회사 건조세탁기
US6711718B2 (en) * 2001-12-10 2004-03-23 Charles Pfeil Parallel electronic design automation: distributed simultaneous editing
US7496841B2 (en) 2001-12-17 2009-02-24 Workshare Technology, Ltd. Method and system for document collaboration
US7475242B2 (en) * 2001-12-18 2009-01-06 Hewlett-Packard Development Company, L.P. Controlling the distribution of information
EA007776B1 (ru) * 2001-12-21 2007-02-27 Эли Абир Способ и устройство для преобразования контента
US20030159105A1 (en) * 2002-02-21 2003-08-21 Hiebert Steven P. Interpretive transformation system and method
US7200668B2 (en) * 2002-03-05 2007-04-03 Sun Microsystems, Inc. Document conversion with merging
US7340534B2 (en) 2002-03-05 2008-03-04 Sun Microsystems, Inc. Synchronization of documents between a server and small devices
AU2003276819A1 (en) * 2002-06-13 2003-12-31 Engedi Technologies, Inc. Out-of-band remote management station
US20040068505A1 (en) * 2002-10-04 2004-04-08 Chung-I Lee System and method for synchronously editing a file on different client computers
DE10250842B4 (de) * 2002-10-31 2010-11-11 OCé PRINTING SYSTEMS GMBH Verfahren, Computerprogrammprodukt und Vorrichtung zum Verarbeiten eines Dokumentendatenstroms eines Eingangsformates zu einem Ausgangsformat
US7328243B2 (en) * 2002-10-31 2008-02-05 Sun Microsystems, Inc. Collaborative content coherence using mobile agents in peer-to-peer networks
US7954043B2 (en) * 2002-12-02 2011-05-31 International Business Machines Corporation Concurrent editing of a file by multiple authors
US7209948B2 (en) * 2002-12-20 2007-04-24 International Business Machines, Corporation Collaborative review of distributed content
KR100462839B1 (ko) * 2002-12-24 2004-12-23 한국전자통신연구원 모바일 환경에서의 이동 클라이언트와 서버간의 데이터동기화 및 갱신 충돌 해결 방법
US7337388B2 (en) * 2003-01-02 2008-02-26 Microsoft Corporation Tool-based iterative document management
US8706760B2 (en) 2003-02-28 2014-04-22 Microsoft Corporation Method to delay locking of server files on edit
US20060259524A1 (en) 2003-03-17 2006-11-16 Horton D T Systems and methods for document project management, conversion, and filing
US20040230903A1 (en) 2003-05-16 2004-11-18 Dethe Elza Method and system for enabling collaborative authoring of hierarchical documents with associated business logic
US7290251B2 (en) * 2003-05-16 2007-10-30 Microsoft Corporation Method and system for providing a representation of merge conflicts in a three-way merge operation
SG144930A1 (en) * 2003-07-08 2008-08-28 Us Lynx Llc An automated publishing system that facilitates collaborative editing and accountability through virtual document architecture
AU2003903994A0 (en) * 2003-07-31 2003-08-14 Canon Kabushiki Kaisha Collaborative editing with automatic layout
US7363581B2 (en) * 2003-08-12 2008-04-22 Accenture Global Services Gmbh Presentation generator
US7143117B2 (en) * 2003-09-25 2006-11-28 International Business Machines Corporation Method, system, and program for data synchronization by determining whether a first identifier for a portion of data at a first source and a second identifier for a portion of corresponding data at a second source match
US7185277B1 (en) * 2003-10-24 2007-02-27 Microsoft Corporation Method and apparatus for merging electronic documents containing markup language
WO2005043279A2 (en) 2003-10-31 2005-05-12 Disksites Research And Development Ltd. Device, system and method for storage and access of computer files
WO2005046112A2 (en) * 2003-11-04 2005-05-19 Taskport, Inc. Method and system for collaboration
US7839532B2 (en) * 2003-12-12 2010-11-23 Ipro Tech, Inc. Methods and apparatus for imaging documents
US7225189B1 (en) * 2004-02-19 2007-05-29 Microsoft Corporation Data source write back and offline data editing and storage in a spreadsheet
JP2005267021A (ja) 2004-03-17 2005-09-29 Ricoh Co Ltd 文書作成方法、文書作成装置、プログラム、記憶媒体および文書のデータ構造
US7818679B2 (en) 2004-04-20 2010-10-19 Microsoft Corporation Method, system, and apparatus for enabling near real time collaboration on an electronic document through a plurality of computer systems
JP2005309745A (ja) * 2004-04-21 2005-11-04 Nec Corp オリジナル画像文書情報と追記情報とを管理する文書管理ネットワークシステム、画像文書配信サーバ
US7536636B2 (en) * 2004-04-26 2009-05-19 Kodak Graphic Communications Canada Company Systems and methods for comparing documents containing graphic elements
WO2005103935A1 (en) * 2004-04-26 2005-11-03 Creo Inc. Systems and methods for comparing documents containing graphic elements
US7912811B2 (en) * 2004-05-19 2011-03-22 Universitaet Zuerich Computer-based system and computer program product for collaborative editing of documents
US7603357B1 (en) 2004-06-01 2009-10-13 Adobe Systems Incorporated Collaborative asset management
JP4716709B2 (ja) * 2004-06-10 2011-07-06 インターナショナル・ビジネス・マシーンズ・コーポレーション 構造化文書処理装置、構造化文書処理方法、及びプログラム
JP4069905B2 (ja) 2004-06-28 2008-04-02 コニカミノルタビジネステクノロジーズ株式会社 共有ファイル管理システムおよびサーバー
US7487471B2 (en) * 2004-07-23 2009-02-03 Sap Ag User interface for conflict resolution management
KR101138434B1 (ko) * 2004-08-31 2012-04-26 텐센트 테크놀로지(센젠) 컴퍼니 리미티드 실시간 통신 플랫폼에 기반하여 네트워크 하드디스크를실행하는 시스템 및 그 방법
US20060053195A1 (en) * 2004-09-03 2006-03-09 Schneider Ronald E Systems and methods for collaboration
US20060080432A1 (en) 2004-09-03 2006-04-13 Spataro Jared M Systems and methods for collaboration
US20060053194A1 (en) * 2004-09-03 2006-03-09 Schneider Ronald E Systems and methods for collaboration
US7392243B2 (en) * 2004-10-20 2008-06-24 Microsoft Corporation Using permanent identifiers in documents for change management
US7577906B2 (en) * 2004-11-08 2009-08-18 Microsoft Corporation Method and system for document assembly
US7472341B2 (en) * 2004-11-08 2008-12-30 International Business Machines Corporation Multi-user, multi-timed collaborative annotation
US8108773B2 (en) * 2004-12-17 2012-01-31 Xerox Corporation Method and apparatus for generating instances of documents
US7908247B2 (en) * 2004-12-21 2011-03-15 Nextpage, Inc. Storage-and transport-independent collaborative document-management system
US20060179026A1 (en) * 2005-02-04 2006-08-10 Bechtel Michael E Knowledge discovery tool extraction and integration
US7792788B2 (en) 2005-03-04 2010-09-07 Microsoft Corporation Method and system for resolving conflicts operations in a collaborative editing environment
US20060218476A1 (en) 2005-03-25 2006-09-28 Xerox Corporation Collaborative document authoring and production methods and systems
US7454406B2 (en) 2005-04-29 2008-11-18 Adaptec, Inc. System and method of handling file metadata
TWI276325B (en) * 2005-09-16 2007-03-11 Hon Hai Prec Ind Co Ltd Mobile communication device and method for downloading configuration files thereof and wireless communication system
EP1927922A1 (en) 2005-09-22 2008-06-04 JustSystems Corporation Data managing apparatus, data editing apparatus, data browsing apparatus, data managing method, data editing method, and data browsing method
GB0523703D0 (en) * 2005-11-22 2005-12-28 Ibm Collaborative editing of a document
US7774703B2 (en) * 2006-02-09 2010-08-10 Microsoft Corporation Virtual shadow awareness for multi-user editors
US20070198952A1 (en) * 2006-02-21 2007-08-23 Pittenger Robert A Methods and systems for authoring of a compound document following a hierarchical structure
GB0610116D0 (en) 2006-05-20 2006-06-28 Ibm A method, apparatus and computer program for collaborative editing of a document
US8407670B2 (en) 2006-06-02 2013-03-26 Microsoft Corporation Collaborative code conflict detection, notification and resolution
US20080059539A1 (en) * 2006-08-08 2008-03-06 Richard Chin Document Collaboration System and Method
JP5437557B2 (ja) * 2006-10-19 2014-03-12 富士通株式会社 検索処理方法及び検索システム
US20080098294A1 (en) * 2006-10-23 2008-04-24 Mediq Learning, L.L.C. Collaborative annotation of electronic content
US20080114740A1 (en) * 2006-11-14 2008-05-15 Xcential Group Llc System and method for maintaining conformance of electronic document structure with multiple, variant document structure models
KR100904758B1 (ko) * 2007-02-08 2009-06-29 삼성전자주식회사 버퍼 메모리를 포함하는 플래쉬 메모리 장치 및 시스템,플래쉬 메모리 장치의 데이터 업데이트 방법
WO2008101130A2 (en) * 2007-02-14 2008-08-21 Museami, Inc. Music-based search engine
US20080294895A1 (en) 2007-02-15 2008-11-27 Michael Bodner Disaggregation/reassembly method system for information rights management of secure documents
US7937663B2 (en) * 2007-06-29 2011-05-03 Microsoft Corporation Integrated collaborative user interface for a document editor program
US7933952B2 (en) * 2007-06-29 2011-04-26 Microsoft Corporation Collaborative document authoring
WO2009027138A1 (en) * 2007-08-30 2009-03-05 International Business Machines Corporation Accessing data entities
US8286132B2 (en) * 2008-09-25 2012-10-09 International Business Machines Corporation Comparing and merging structured documents syntactically and semantically

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2007257629A (ja) 2006-03-22 2007-10-04 Internatl Business Mach Corp <Ibm> 共同で作成されるマスター・ドキュメントにサブ・ドキュメントをマージするためのシステムおよび方法

Also Published As

Publication number Publication date
MY157581A (en) 2016-06-30
AU2008335565A1 (en) 2009-06-18
WO2009076010A1 (en) 2009-06-18
CN101889276B (zh) 2013-06-19
AU2008335565B2 (en) 2012-09-27
BRPI0819718A2 (pt) 2015-06-16
EP2215560A1 (en) 2010-08-11
JP5502745B2 (ja) 2014-05-28
JP2011507072A (ja) 2011-03-03
TWI379208B (en) 2012-12-11
CN101889276A (zh) 2010-11-17
RU2481624C2 (ru) 2013-05-10
US8028229B2 (en) 2011-09-27
KR20100087356A (ko) 2010-08-04
EP2215560A4 (en) 2018-01-10
US20090150394A1 (en) 2009-06-11
MX2010005934A (es) 2010-06-15
TW200925902A (en) 2009-06-16
RU2010122968A (ru) 2011-12-10

Similar Documents

Publication Publication Date Title
KR101726879B1 (ko) 문서 병합
US7904418B2 (en) On-demand incremental update of data structures using edit list
US9129007B2 (en) Indexing and querying hash sequence matrices
US10698937B2 (en) Split mapping for dynamic rendering and maintaining consistency of data processed by applications
US7739309B2 (en) Method, system, and computer-readable medium for merging data from multiple data sources for use in an electronic document
CN110263317B (zh) 一种生成文档模板的方法及装置
US20070156404A1 (en) String matching method and system using phonetic symbols and computer-readable recording medium storing computer program for executing the string matching method
US20090204903A1 (en) Identifying unique content in electronic mail messages
US8156090B1 (en) Maintaining file name uniqueness in an application development environment of a computing system
US8825665B2 (en) Database index and database for indexing text documents
CN104408584A (zh) 一种交易关联性的分析方法及系统
US8782148B2 (en) Managing redundancy in electronic mail messages
CN115098062A (zh) 一种代码生成方法及装置
US20070294283A1 (en) System, method and software application for managing meta-language documents
US20090006492A1 (en) Displayname and Resource Identifier Synchronization
FR3020883A1 (fr) Base de fichiers relationnelle et interface graphique de gestion d’une telle base
JP2016018279A (ja) 文書ファイル検索プログラム、文書ファイル検索装置、文書ファイル検索方法、文書情報出力プログラム、文書情報出力装置及び文書情報出力方法
JP2005190141A (ja) 情報区分装置、情報区分方法及び情報区分プログラム
US7675527B2 (en) Multisource composable projection of text
US9189488B2 (en) Determination of landmarks
CN112232032B (zh) docx文档的内容样式自动转换方法
CN117435692A (zh) 一种基于变体对抗敏感文本识别方法和系统
WO2018007889A1 (en) Virtual emails for imap commands
CN113434343A (zh) 一种基于Windows的WPS Mail数据还原方法
CN116227446A (zh) 信息融合方法、装置及设备

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
N231 Notification of change of applicant
J301 Trial decision

Free format text: TRIAL NUMBER: 2015101004490; TRIAL DECISION FOR APPEAL AGAINST DECISION TO DECLINE REFUSAL REQUESTED 20150731

Effective date: 20160831

S901 Examination by remand of revocation
E902 Notification of reason for refusal
GRNO Decision to grant (after opposition)
GRNT Written decision to grant