KR101726879B1 - 문서 병합 - Google Patents
문서 병합 Download PDFInfo
- 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
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F40/00—Handling natural language data
- G06F40/10—Text processing
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F40/00—Handling natural language data
- G06F40/10—Text processing
- G06F40/197—Version 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
병합(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 문서와 병합하여 병합된 문서를 발생하는 다른 예시적인 방법을 나타낸 도면.
도 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 Office Word 애플리케이션(이것으로 제한되지 않음)과 같은 워드 프로세싱 애플리케이션이다. 다른 가능한 실시예들에서, 문서 처리 시스템(100)은 이미지, 데이터, 음성 또는 임의의 다른 적당한 문서 처리 시스템이다. 이와 유사하게, 문서 처리 애플리케이션(110)도 역시 Microsoft Office POWERPOINT, EXCEL, VISIO, ACCESS™, 및 OUTLOOK 소프트웨어 애플리케이션(이들로 제한되지 않음)과 같은 이미지, 데이터, 음성 또는 임의의 다른 적당한 문서 처리 애플리케이션일 수 있다. 문서들(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 문서 및 제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 문서에 삽입하는 단계
를 포함하는 방법. - 제1항에 있어서,
상기 제1 문서의 데이터 단위들의 단위 식별자들은 상기 제1 문서 내에 저장되는
방법. - 제1항에 있어서,
상기 제1 문서의 하나의 데이터 단위가 편집되는 경우 상기 하나의 데이터 단위에 새로운 편집 식별자를 할당하는 단계, 및
상기 새로운 편집 식별자를 상기 제1 문서 내에 저장하는 단계
를 더 포함하는 방법. - 제3항에 있어서,
상기 새로운 편집 식별자를 저장하는 단계는 사용자가 상기 제1 문서를 저장할 때 상기 새로운 편집 식별자를 저장하는 단계를 포함하는
방법. - 제3항에 있어서,
상기 새로운 편집 식별자는 랜덤하게 생성되는
방법. - 제1항에 있어서,
상기 제1 문서의 데이터 단위들의 단위 식별자들을 획득하는 단계는 상기 제1 문서의 단락들의 단락 식별자들을 획득하는 단계를 포함하는
방법. - 문서 처리 시스템으로서,
시스템 메모리,
적어도 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 문서에 삽입하도록 구성되는,
문서 처리 시스템. - 제7항에 있어서,
상기 문서 처리 애플리케이션은 각각의 데이터 단위가 생성될 때 그 데이터 단위의 단위 식별자를 생성하도록 구성되는
문서 처리 시스템. - 제7항에 있어서,
상기 문서 처리 애플리케이션은 상기 수정이 상기 제1 문서 내에 저장될 때 각각의 데이터 단위의 편집 식별자를 생성하도록 구성되는
문서 처리 시스템. - 제7항에 있어서,
상기 제2 문서와 연관되며 상기 제2 문서와 별도로 저장되는 메타데이터 파일- 상기 메타데이터 파일은 상기 제2 문서의 내용과 관련된 메타데이터를 포함하며, 상기 메타데이터 파일의 상기 메타데이터는 상기 메타데이터가 어느 데이터 단위와 관련되어 있는지를 나타내는 단위 식별자를 포함함 -을 더 포함하는 문서 처리 시스템. - 제10항에 있어서,
상기 메타데이터 파일에 저장된 상기 메타데이터는 상기 메타데이터에 포함된 상기 단위 식별자에 의해 표시되는 데이터 단위와 연관되어 있는
문서 처리 시스템. - 제7항에 있어서,
상기 문서는 텍스트 문서인
문서 처리 시스템. - 제7항에 있어서,
상기 데이터 단위는 단락(paragraph)인
문서 처리 시스템. - 제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)을 수행하여 병합된 문서를 생성하는 단계
를 포함하는
컴퓨터-판독가능 저장 매체. - 제14항에 있어서,
상기 가속 병합을 수행하는 단계는,
상기 제1 문서의 각각의 데이터 단위의 고유하고 영속적인 식별자들을 상기 제2 문서의 각각의 데이터 단위의 고유하고 영속적인 식별자들과 비교하여 상기 제1 문서의 어느 데이터 단위들이 상기 제2 문서의 데이터 단위들과 일치하는지를 식별하는 단계,
상기 일치하는 것으로 식별된 데이터 단위들을 데이터 단위들의 병합 없이 상기 병합된 문서에 바로 삽입하는 것에 의해 상기 병합된 문서에 대한 데이터 단위들을 생성하는 단계, 및
상기 제1 문서 및 상기 제2 문서 중 다른쪽 문서의 어떤 데이터 단위와도 일치하지 않는 상기 제1 문서 및 상기 제2 문서 중 한쪽 문서의 각각의 데이터 단위를 재래식 병합을 사용해서 병합하여 생성된 새로운 데이터 단위들을 상기 병합된 문서에 삽입하는 것에 의해 상기 병합된 문서의 데이터 단위들을 추가적으로 생성하는 단계
를 포함하는
컴퓨터-판독가능 저장 매체. - 제15항에 있어서,
상기 제1 문서의 각각의 데이터 단위의 고유하고 영속적인 식별자들을 상기 제2 문서의 각각의 데이터 단위의 고유하고 영속적인 식별자들과 비교하는 단계는,
상기 제1 문서의 각각의 데이터 단위의 단위 식별자 및 편집 식별자를 상기 제2 문서의 각각의 데이터 단위의 단위 식별자 및 편집 식별자와 비교하는 단계
를 포함하는
컴퓨터-판독가능 저장 매체. - 제14항에 있어서,
상기 방법은,
상기 제1 문서 및 상기 제2 문서 중 어느 것도 문서 식별자를 갖지 않는 경우, 상기 병합된 문서의 데이터 단위들 각각에 고유하고 영속적인 식별자들을 부가하는 단계, 및
상기 제1 문서의 문서 식별자가 상기 제2 문서의 문서 식별자와 다른 경우, 상기 병합된 문서의 데이터 단위들 각각에 고유하고 영속적인 식별자들을 부가하는 단계
를 더 포함하는
컴퓨터-판독가능 저장 매체. - 제17항에 있어서,
상기 병합된 문서의 데이터 단위들 각각에 고유하고 영속적인 식별자들을 부가하는 단계는,
상기 병합된 문서 내에 상기 고유하고 영속적인 식별자들을 저장하는 단계
를 포함하는
컴퓨터-판독가능 저장 매체. - 삭제
- 삭제
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)
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)
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)
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 |
-
2007
- 2007-12-06 US US11/951,973 patent/US8028229B2/en not_active Expired - Fee Related
-
2008
- 2008-11-03 TW TW097142418A patent/TWI379208B/zh not_active IP Right Cessation
- 2008-11-18 JP JP2010536967A patent/JP5502745B2/ja not_active Expired - Fee Related
- 2008-11-18 MY MYPI2010001887A patent/MY157581A/en unknown
- 2008-11-18 WO PCT/US2008/083862 patent/WO2009076010A1/en active Application Filing
- 2008-11-18 RU RU2010122968/08A patent/RU2481624C2/ru not_active IP Right Cessation
- 2008-11-18 KR KR1020107012220A patent/KR101726879B1/ko active IP Right Grant
- 2008-11-18 CN CN2008801196479A patent/CN101889276B/zh not_active Expired - Fee Related
- 2008-11-18 EP EP08859774.5A patent/EP2215560A4/en not_active Withdrawn
- 2008-11-18 AU AU2008335565A patent/AU2008335565B2/en not_active Ceased
- 2008-11-18 MX MX2010005934A patent/MX2010005934A/es active IP Right Grant
- 2008-11-18 BR BRPI0819718-0A patent/BRPI0819718A2/pt not_active Application Discontinuation
Patent Citations (1)
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 |