KR20100087356A - 문서 병합 - Google Patents

문서 병합 Download PDF

Info

Publication number
KR20100087356A
KR20100087356A KR1020107012220A KR20107012220A KR20100087356A KR 20100087356 A KR20100087356 A KR 20100087356A KR 1020107012220 A KR1020107012220 A KR 1020107012220A KR 20107012220 A KR20107012220 A KR 20107012220A KR 20100087356 A KR20100087356 A KR 20100087356A
Authority
KR
South Korea
Prior art keywords
document
identifiers
unit
identifier
data
Prior art date
Application number
KR1020107012220A
Other languages
English (en)
Other versions
KR101726879B1 (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 pct00001
Office Word 애플리케이션(이것으로 제한되지 않음)과 같은 워드 프로세싱 애플리케이션이다. 다른 가능한 실시예들에서, 문서 처리 시스템(100)은 이미지, 데이터, 음성 또는 임의의 다른 적당한 문서 처리 시스템이다. 이와 유사하게, 문서 처리 애플리케이션(110)도 역시 Microsoft
Figure pct00002
Office POWERPOINT
Figure pct00003
, EXCEL
Figure pct00004
, VISIO
Figure pct00005
, ACCESS™, 및 OUTLOOK
Figure 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 문서(220)를 적어도 제2 문서(240)와 병합하여 제3 문서(260)를 발생하는 방법으로서,
    상기 제1 문서(220) 및 상기 제2 문서(240) 각각은 하나 이상의 데이터 단위들(data unit)(124a, 124b, 124c, 124d, 124e, 124f)을 포함하고,
    각각의 데이터 단위(124a, 124b, 124c, 124d, 124e, 124f)는 단위 식별자(unit identifier)(U1, U2, U3, U4) 및 편집 식별자(edit identifier)(E1, E3, E4, E20, E21)와 연관되어 있으며,
    상기 방법이,
    상기 제1 문서(220)의 데이터 단위들(124a, 124b, 124c)의 단위 식별자들(U1, U2, U3)을 획득하는 단계,
    상기 제2 문서(240)의 데이터 단위들(124d, 124e, 124f)의 단위 식별자들(U1, U2, U4)을 획득하는 단계,
    상기 제1 문서(220) 및 상기 제2 문서(240) 중 각 한쪽 문서의 단위 식별자들(U1, U2, U3, U4)을 상기 제1 문서(220) 및 상기 제2 문서(240) 중 다른쪽 문서의 단위 식별자들(U1, U2, U3, U4)과 비교하여 상기 단위 식별자들(U1, U2, U3, U4) 각각이 일치하는 단위 식별자(matching unit identifier)인지 불일치하는 단위 식별자(non-matching unit identifier)인지를 판정하는 단계 - 상기 일치하는 단위 식별자들 각각은 상기 제1 문서(220) 및 상기 제2 문서(240)의 대응하는 데이터 단위들(124a, 124b, 124c, 124d, 124e, 124f)을 나타내고, 상기 불일치하는 단위 식별자들 각각은 상기 제1 문서(220) 및 상기 제2 문서(240) 중 다른쪽 문서의 어떤 데이터 단위(124a, 124b, 124c, 124d, 124e, 124f)에도 대응하지 않는 상기 제1 문서(220) 및 상기 제2 문서(240) 중 한쪽 문서의 데이터 단위(124a, 124b, 124c, 124d, 124e, 124f)를 나타냄 -,
    상기 일치하는 단위 식별자들과 연관된 데이터 단위들(124a, 124b, 124c, 124d, 124e, 124f)의 편집 식별자들(E1, E3, E4, E20, E21)을 비교하여 일치하는 편집 식별자들을 확인하는 단계 - 상기 일치하는 편집 식별자들 각각은 상기 제1 문서(220) 및 상기 제2 문서(240) 중 한쪽 문서의 데이터 단위(124a, 124b, 124c, 124d, 124e, 124f)가 상기 제1 문서(220) 및 상기 제2 문서(240) 중 다른쪽 문서의 대응하는 데이터 단위(124a, 124b, 124c, 124d, 124e, 124f)와 일치한다는 것을 나타냄 -,
    불일치하는 단위 식별자들과 연관되어 있는 상기 제1 문서(220) 및 상기 제2 문서(240)의 데이터 단위들(124a, 124b, 124c, 124d, 124e, 124f)을 상기 제3 문서(260)에 바로 삽입하는 단계,
    일치하는 단위 식별자들 및 일치하는 편집 식별자들과 연관되어 있는 상기 제1 문서(220) 및 상기 제2 문서(240)의 데이터 단위들(124a, 124b, 124c, 124d, 124e, 124f)을 상기 제3 문서(260)에 바로 삽입하는 단계, 및
    일치하는 단위 식별자들 및 불일치하는 편집 식별자들과 연관되어 있는 상기 제1 문서(220) 및 상기 제2 문서(240)의 데이터 단위들(124a, 124b, 124c, 124d, 124e, 124f)을 병합하여 상기 제3 문서(260)에 넣는 단계를 포함하는 방법.
  2. 제1항에 있어서, 상기 제1 문서의 각각의 데이터 단위에 단위 식별자를 할당하는 단계, 및
    상기 단위 식별자들을 상기 제1 문서 내에 저장하는 단계를 더 포함하는 방법.
  3. 제1항에 있어서, 상기 제1 문서의 각각의 데이터 단위에 편집 식별자를 할당하는 단계, 및
    상기 편집 식별자들을 상기 제1 문서 내에 저장하는 단계를 더 포함하는 방법.
  4. 제3항에 있어서, 상기 편집 식별자들을 저장하는 단계는 사용자가 상기 제1 문서를 저장할 때 상기 편집 식별자들을 저장하는 단계를 포함하는 방법.
  5. 제3항에 있어서, 상기 편집 식별자를 할당하는 단계가 랜덤한 식별자를 발생하는 단계를 포함하는 방법.
  6. 제1항에 있어서, 상기 제1 문서의 데이터 단위들의 단위 식별자들을 획득하는 단계가 상기 제1 문서의 단락들의 단락 식별자들을 획득하는 단계를 포함하는 방법.
  7. 문서 처리 시스템(100)으로서,
    적어도 2개의 문서들(220, 240)을 서로 병합하여 제3 문서(260)를 발생하도록 구성되어 있는 문서 처리 애플리케이션(110), 및
    상기 문서 처리 애플리케이션(110)에 의해 처리되도록 구성되어 있는 제1 문서(120)를 포함하며,
    상기 제1 문서(120)는 내용(content)(130) 및 메타데이터(metadata)(140)를 저장하고,
    상기 제1 문서(120)의 상기 내용(130)은 적어도 하나의 데이터 단위(124)를 포함하며,
    상기 제1 문서(120)의 상기 메타데이터(140)는 각각의 데이터 단위와 연관된 단위 식별자(126) 및 편집 식별자(128)를 포함하고,
    각각의 데이터 단위의 상기 단위 식별자(126)는 그 데이터 단위(124)가 생성될 때 발생되며,
    각각의 데이터 단위의 상기 편집 식별자(128)는 그 데이터 단위(124)에 대한 수정이 저장될 때 발생되는 문서 처리 시스템.
  8. 제7항에 있어서, 상기 문서 처리 애플리케이션은 각각의 데이터 단위가 생성될 때 그 데이터 단위의 단위 식별자를 발생하도록 구성되어 있는 문서 처리 시스템.
  9. 제7항에 있어서, 상기 문서 처리 애플리케이션은 상기 수정이 상기 제1 문서 내에 저장될 때 각각의 데이터 단위의 편집 식별자를 발생하도록 구성되어 있는 문서 처리 시스템.
  10. 제7항에 있어서, 상기 제1 문서와 별도로 저장되는 메타데이터 파일을 더 포함하고,
    상기 메타데이터 파일은 상기 제1 문서의 내용과 관련된 메타데이터를 포함하며,
    상기 메타데이터 파일의 상기 메타데이터는 상기 메타데이터가 어느 데이터 단위와 관련되어 있는지를 나타내는 단위 식별자를 포함하는 문서 처리 시스템.
  11. 제10항에 있어서, 상기 메타데이터 파일에 저장된 상기 메타데이터가 상기 메타데이터에 포함된 상기 단위 식별자에 의해 표시되는 데이터 단위와 연관되어 있는 문서 처리 시스템.
  12. 제7항에 있어서, 상기 문서 처리 애플리케이션이 상기 제1 문서의 단위 식별자들을 제2 문서의 단위 식별자들과 비교하여 상기 단위 식별자들 각각이 일치하는 단위 식별자(matching unit identifier)인지 불일치하는 단위 식별자(non-matching unit identifier)인지를 판정하도록 구성되어 있고,
    상기 일치하는 단위 식별자들 각각은 상기 제1 문서 및 상기 제2 문서의 대응하는 데이터 단위들을 나타내며,
    상기 불일치하는 단위 식별자들 각각은 상기 제1 문서 및 상기 제2 문서 중 다른쪽 문서의 어떤 데이터 단위에도 대응하지 않는 상기 제1 문서 및 상기 제2 문서 중 한쪽 문서의 데이터 단위를 나타내는 문서 처리 시스템.
  13. 제12항에 있어서, 상기 문서 처리 애플리케이션은 상기 일치하는 단위 식별자들과 연관된 데이터 단위들의 편집 식별자들을 비교하여 일치하는 편집 식별자들을 확인하도록 구성되어 있고,
    상기 일치하는 편집 식별자들 각각은 상기 제1 문서 및 상기 제2 문서 중 한쪽 문서의 데이터 단위가 상기 제1 문서 및 상기 제2 문서 중 다른쪽 문서의 대응하는 데이터 단위와 일치한다는 것을 나타내는 문서 처리 시스템.
  14. 제7항에 있어서, 상기 문서가 텍스트 문서인 문서 처리 시스템.
  15. 제7항에 있어서, 상기 데이터 단위가 단락(paragraph)인 문서 처리 시스템.
  16. 제1 문서(220) 및 제2 문서(240)로부터 병합된 문서(260)를 발생하는 방법을 구현하는 컴퓨터-실행가능 명령어들을 갖는 컴퓨터-판독가능 저장 매체(604)로서,
    상기 방법이,
    상기 제1 문서(220)가 제1 문서 식별자(U1, U2, U3)를 갖는지 여부를 판정하는 단계 - 상기 제1 문서 식별자(U1, U2, U3)는 상기 제1 문서(220)를 식별해줌 -,
    상기 제1 문서(220)가 제1 문서 식별자(U1, U2, U3)를 갖는 경우, 상기 제1 문서 식별자(U1, U2, U3)를 획득하는 단계,
    상기 제2 문서(240)가 제2 문서 식별자(U1, U2, U4)를 갖는지 여부를 판정하는 단계 - 상기 제2 문서 식별자(U1, U2, U4)는 상기 제2 문서(240)를 식별해줌 -,
    상기 제2 문서(220)가 제2 문서 식별자(U1, U2, U4)를 갖는 경우, 상기 제2 문서 식별자(U1, U2, U4)를 획득하는 단계,
    상기 제1 문서(220)의 상기 제1 문서 식별자(U1, U2, U3)를 상기 제2 문서(240)의 상기 제2 문서 식별자(U1, U2, U4)와 비교하는 단계,
    상기 제1 문서(220) 및 상기 제2 문서(240) 중 어느 것도 문서 식별자(U1, U2, U3, U4)를 갖지 않는 경우, 상기 제1 문서(220) 및 상기 제2 문서(240)에 대해 종래의 병합(conventional merge)을 수행하여 병합된 문서(260)를 발생하는 단계,
    상기 제1 문서(220)의 상기 제1 문서 식별자(U1, U2, U3)가 상기 제2 문서(240)의 상기 제2 문서 식별자(U1, U2, U4)와 다른 경우, 상기 제1 문서(220) 및 상기 제2 문서(240)에 대해 종래의 병합(conventional merge)을 수행하여 병합된 문서(260)를 발생하는 단계, 및
    상기 제1 문서(220)의 상기 제1 문서 식별자(U1, U2, U3)가 상기 제2 문서(240)의 상기 제2 문서 식별자(U1, U2, U4)와 일치하는 경우, 상기 제1 문서(220) 및 상기 제2 문서(240)에 대해 가속 병합(accelerated merge)을 수행하여 병합된 문서(260)를 발생하는 단계를 포함하는 컴퓨터-판독가능 저장 매체.
  17. 제16항에 있어서, 상기 가속 병합을 수행하는 단계가,
    상기 제1 문서의 각각의 데이터 단위의 고유하고 영속적인 식별자들을 상기 제2 문서의 각각의 데이터 단위의 고유하고 영속적인 식별자들과 비교하여 상기 제1 문서의 어느 데이터 단위들이 상기 제2 문서의 데이터 단위들과 일치하는지를 식별하는 단계,
    상기 식별된 데이터 단위들을 상기 병합된 문서에 바로 삽입하여 상기 병합된 문서의 데이터 단위들을 생성하는 단계, 및
    종래의 병합을 사용해 상기 제1 문서 및 상기 제2 문서 중 다른쪽 문서의 어떤 데이터 단위와도 일치하지 않는 상기 제1 문서 및 상기 제2 문서 중 한쪽 문서의 각각의 데이터 단위를 병합하여 상기 병합된 문서의 데이터 단위들을 추가적으로 생성하는 단계를 포함하는 컴퓨터-판독가능 저장 매체.
  18. 제16항에 있어서, 상기 방법이,
    상기 제1 문서 및 상기 제2 문서 중 어느 것도 문서 식별자를 갖지 않는 경우, 상기 병합된 문서의 데이터 단위들 각각에 고유하고 영속적인 식별자들을 부가하는 단계, 및
    상기 제1 문서의 문서 식별자가 상기 제2 문서의 문서 식별자와 다른 경우, 상기 병합된 문서의 데이터 단위들 각각에 고유하고 영속적인 식별자들을 부가하는 단계를 더 포함하는 컴퓨터-판독가능 저장 매체.
  19. 제18항에 있어서, 상기 병합된 문서의 데이터 단위들 각각에 고유하고 영속적인 식별자들을 부가하는 단계가,
    상기 병합된 문서 내에 상기 고유하고 영속적인 식별자들을 저장하는 단계를 포함하는 컴퓨터-판독가능 저장 매체.
  20. 제17항에 있어서, 상기 제1 문서의 각각의 데이터 단위의 고유하고 영속적인 식별자들을 상기 제2 문서의 각각의 데이터 단위의 고유하고 영속적인 식별자들과 비교하는 단계가,
    상기 제1 문서의 각각의 데이터 단위의 단위 식별자 및 편집 식별자를 상기 제2 문서의 각각의 데이터 단위의 단위 식별자 및 편집 식별자와 비교하는 단계를 포함하는 컴퓨터-판독가능 저장 매체.
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 true KR20100087356A (ko) 2010-08-04
KR101726879B1 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)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2014025173A1 (ko) * 2012-08-06 2014-02-13 Ji Seung Hwan 전자적 서적의 통합 제공방법
KR20150111935A (ko) * 2013-01-30 2015-10-06 마이크로소프트 테크놀로지 라이센싱, 엘엘씨 콘텐트 큐레이션을 위한 애플리케이션 프로그래밍 인터페이스
KR102172732B1 (ko) * 2019-08-31 2020-11-02 한화시스템 주식회사 용량 단위의 pdf 문서 변환 장치 및 방법
KR102538108B1 (ko) * 2023-03-24 2023-05-30 주식회사 올빅뎃 인공지능을 활용한 문서 구조 정보 추출 및 문서 병합 장치

Families Citing this family (45)

* 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
US20090157491A1 (en) * 2007-12-12 2009-06-18 Brougher William C Monetization 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
WO2012061297A1 (en) 2010-11-02 2012-05-10 Google Inc. Realtime synchronized document editing by multiple users for blogging
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
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
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
US11902232B1 (en) * 2014-11-18 2024-02-13 Amazon Technologies, Inc. Email conversation linking
US10044662B1 (en) 2014-11-18 2018-08-07 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
US10922469B1 (en) * 2020-06-30 2021-02-16 Cadence Design Systems, Inc. Methods and systems of enabling concurrent editing of hierarchical electronic circuit layouts

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 情報処理システム、構造化文書処理システム、その更新方法及びその更新プログラムを記録した記録媒体
WO2001033362A1 (en) 1999-11-05 2001-05-10 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 오길록 문서 공동 편집 장치 및 그 방법
DE60111376T2 (de) * 2000-05-16 2006-03-16 O'carroll, Garrett System und verfahren zur dokumentverarbeitung
US6931592B1 (en) * 2000-05-22 2005-08-16 Microsoft Corporation Reviewing and merging electronic documents
WO2002017115A2 (en) * 2000-08-21 2002-02-28 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
US7171467B2 (en) * 2002-06-13 2007-01-30 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
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
US20040230893A1 (en) 2003-05-16 2004-11-18 Dethe Elza Method and system for enabling collaborative authoring of hierarchical documents with node privileges
WO2005008415A2 (en) * 2003-07-08 2005-01-27 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
US20050097440A1 (en) * 2003-11-04 2005-05-05 Richard Lusk 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 オリジナル画像文書情報と追記情報とを管理する文書管理ネットワークシステム、画像文書配信サーバ
WO2005103935A1 (en) * 2004-04-26 2005-11-03 Creo Inc. Systems and methods for comparing documents containing graphic elements
US7536636B2 (en) * 2004-04-26 2009-05-19 Kodak Graphic Communications Canada Company Systems and methods for comparing documents containing graphic elements
EP1751677A2 (en) * 2004-05-19 2007-02-14 Universität Zürich 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
US20060053194A1 (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
US7392243B2 (en) * 2004-10-20 2008-06-24 Microsoft Corporation Using permanent identifiers in documents for change management
US7472341B2 (en) * 2004-11-08 2008-12-30 International Business Machines Corporation Multi-user, multi-timed collaborative annotation
US7577906B2 (en) * 2004-11-08 2009-08-18 Microsoft Corporation Method and system for document assembly
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
WO2007034858A1 (ja) 2005-09-22 2007-03-29 Justsystems Corporation データ管理装置、データ編集装置、データ閲覧装置、データ管理方法、データ編集方法およびデータ閲覧方法
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 삼성전자주식회사 버퍼 메모리를 포함하는 플래쉬 메모리 장치 및 시스템,플래쉬 메모리 장치의 데이터 업데이트 방법
JP2010518459A (ja) * 2007-02-14 2010-05-27 ミューズアミ, インコーポレイテッド 配布オーディオファイル編集用ウェブポータル
US20080294895A1 (en) 2007-02-15 2008-11-27 Michael Bodner Disaggregation/reassembly method system for information rights management of secure documents
US7933952B2 (en) * 2007-06-29 2011-04-26 Microsoft Corporation Collaborative document authoring
US7937663B2 (en) * 2007-06-29 2011-05-03 Microsoft Corporation Integrated collaborative user interface for a document editor program
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> 共同で作成されるマスター・ドキュメントにサブ・ドキュメントをマージするためのシステムおよび方法

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2014025173A1 (ko) * 2012-08-06 2014-02-13 Ji Seung Hwan 전자적 서적의 통합 제공방법
KR101397754B1 (ko) * 2012-08-06 2014-05-21 지승환 전자적 서적의 통합 제공방법
KR20150111935A (ko) * 2013-01-30 2015-10-06 마이크로소프트 테크놀로지 라이센싱, 엘엘씨 콘텐트 큐레이션을 위한 애플리케이션 프로그래밍 인터페이스
KR102172732B1 (ko) * 2019-08-31 2020-11-02 한화시스템 주식회사 용량 단위의 pdf 문서 변환 장치 및 방법
KR102538108B1 (ko) * 2023-03-24 2023-05-30 주식회사 올빅뎃 인공지능을 활용한 문서 구조 정보 추출 및 문서 병합 장치

Also Published As

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

Similar Documents

Publication Publication Date Title
KR20100087356A (ko) 문서 병합
US9129007B2 (en) Indexing and querying hash sequence matrices
US9659013B2 (en) System and method for indexing electronic discovery data
KR101130443B1 (ko) 전자 문서 내에서의 사용을 위해 다중 데이터 소스로부터의데이터를 통합하는 방법, 시스템 및 컴퓨터 판독가능 매체
US7487174B2 (en) Method for storing text annotations with associated type information in a structured data store
JP2011507072A5 (ko)
US20200279004A1 (en) Building lineages of documents
US20200125532A1 (en) Fingerprints for open source code governance
US10791240B2 (en) Systems and methods for rendering a secure document with a text selection capability
US8782148B2 (en) Managing redundancy in electronic mail messages
CN110874526B (zh) 一种文件相似性检测方法、装置、电子设备及存储介质
US9063949B2 (en) Inferring a sequence of editing operations to facilitate merging versions of a shared document
US10262026B2 (en) Relational file database and graphic interface for managing such a database
US20090006492A1 (en) Displayname and Resource Identifier Synchronization
JP2016018279A (ja) 文書ファイル検索プログラム、文書ファイル検索装置、文書ファイル検索方法、文書情報出力プログラム、文書情報出力装置及び文書情報出力方法
US7675527B2 (en) Multisource composable projection of text
US20140081986A1 (en) Computing device and method for generating sequence indexes for data files
US20090307274A1 (en) Delayed merge
CN115688711B (zh) 文档合并方法、装置、设备及存储介质
US9189488B2 (en) Determination of landmarks
JP2010191624A (ja) 情報検索方法とその装置、プログラム、記録媒体
CN106354834B (zh) 一种xml数据差异化储存对全文检索的优化方法
JP2023533453A (ja) データ抽出のためのマルチステージデータスニッファ
CN112988737A (zh) 数据存储方法及装置、数据获取方法及装置、电子设备
JP2018018240A (ja) データ処理装置およびプログラム

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