Nova Patents
EP2425358B1

Fast merge support for legacy documents

Abstract

This record has no abstract on file.

EP2425358B1, drawing sheet 1
Sheet 1 of 6

Term

3.6 yearsleft in the term

Expires 23 April 2030.

  1. Priority and filed
  2. Granted
  3. Today
  4. Expires

9 claims: 3 independent, 6 dependent

  1. 1
    A method (400) for merging document metadata at a client computer (102), the method comprising:obtaining (402) a document from a server computer (106) at the client computer (102), the document being requested by a user at the client computer (102);opening (402) the document at the client computer (102);in response to opening the document at the client computer (102), determining (404) whether the document includes paragraph identifiers;when it is determined that the document does not include paragraph identifiers, assigning (408) a paragraph identifier to each paragraph in the document by randomly generating an identifier for the first paragraph of the document, designating the identifier for the first paragraph of the document as a first document identifier, sequentially assigning identifiers to the remaining paragraphs in the document, and designating a first next paragraph identifier having a value one greater than the identifier assigned to the last paragraph in the document;receiving (412) a first message from the server computer (106) providing notification that at least one other user is authoring the document;in response to receiving the first message from the server computer (106) that at least one other user is authoring the document, sending (414) a second message to the server computer (106), the second message including first metadata for the document, wherein the first metadata includes the first document identifier, the first next paragraph identifier and a first revision identifier;determining a first paragraph identifier range from the first metadata, the first paragraph identifier range including a first identifier and a last identifier, the first identifier in the first paragraph identifier range having an initial value equal to the first document identifier and the last identifier in the first paragraph identifier range having a value equal to one less than the first next paragraph identifier;in response to sending the second message to the server computer (106), receiving (416) a third message from the server computer (106), the third message including second metadata for the document, wherein the second metadata includes a second document identifier, a second next paragraph identifier and a second revision identifier;determining a second paragraph identifier range from the second metadata, the second paragraph identifier range including a first identifier and a last identifier, the first identifier in the second paragraph identifier range having an initial value equal to the second document identifier and the last identifier in the second paragraph identifier range having a value equal to one less than the second next paragraph identifier;in response to receiving the third message from the server computer (106), determining (418) whether the first metadata and the second metadata should be merged by: determining (502) whether the first revision identifier matches the second revision identifier;when it is determined that the second revision identifier matches the first revision identifier, determining (506) whether the first document identifier matches the second document identifier;when the first document identifier does not match the second document identifier, determining (510) whether the size of the first paragraph identifier range matches the size of the second paragraph identifier range;and when the size of the first paragraph identifier range matches the size of the second paragraph identifier range, determining that the first metadata and the second metadata should be merged;and when it is determined that the first metadata and the second metadata should be merged, adjusting (422) paragraph identifiers in the document based on the second metadata.
  2. 7
    A computing device (102), comprising:a processing unit (602);a system memory (604) connected to the processing unit (602), the system memory (604) comprising instructions that, when executed by the processing unit (602), cause the processing unit (602) to: obtain (402) a document from a server computer (106) at the computing device (102), the document being requested by a user at the computing device (102);open (402) the document at computing device (102);in response to opening the document at the computing device (102), determine (404) whether the document includes paragraph identifiers;when it is determined that the document does not include paragraph identifiers, assign (408) a paragraph identifier to each paragraph in the document by randomly generating an identifier for the first paragraph of the document, designating the identifier for the first paragraph of the document as a first document identifier, sequentially assigning identifiers to the remaining paragraphs in the document, and designating a first next paragraph identifier having a value one greater than the identifier assigned to the last paragraph in the document;receive (412) a first message from the server computer (106) providing notification that at least one other user is authoring the document;in response to receiving the first message from the server computer (106) that at least one other user is authoring the document, send (414) a second message to the server computer (106), the second message including first metadata for the document, wherein the first metadata includes the first document identifier, the first next paragraph identifier and a first revision identifier;determine a first paragraph identifier range from the first metadata, the first paragraph identifier range including a first identifier and a last identifier, the first identifier in the first paragraph identifier range having an initial value equal to the first document identifier and the last identifier in the first paragraph identifier range having a value equal to one less than the first next paragraph identifier;in response to sending the second message to the server computer (106), receive (416) a third message from the server computer (106), the third message including second metadata for the document, wherein the second metadata includes a second document identifier, a second next paragraph identifier and a second revision identifier;determine a second paragraph identifier range from the second metadata, the second paragraph identifier range including a first identifier and a last identifier, the first identifier in the second paragraph identifier range having an initial value equal to the second document identifier and the last identifier in the second paragraph identifier range having a value equal to one less than the second next paragraph identifier;in response to receiving the third message from the server computer (106), determining (418) whether the first metadata and the second metadata should be merged by: determining (502) whether the first revision identifier matches the second revision identifier;when it is determined that the second revision identifier matches the first revision identifier, determining (506) whether the first document identifier matches the second document identifier;when the first document identifier does not match the second document identifier, determining (510) whether the size of the first paragraph identifier range matches the size of the second paragraph identifier range;and when the size of the first paragraph identifier range matches the size of the second paragraph identifier range, determining that the first metadata and the second metadata should be merged;and when it is determined that the first metadata and the second metadata should be merged, adjust (422) paragraph identifiers in the document based on the second metadata.
  3. 8
    A computer-readable data storage medium comprising instructions that, when executed by a processing unit (602) of an electronic computing device (102), cause the processing unit (602) to:obtain (402) a document from a server computer (106), the document being requested by a user at the electronic computer device (102);open (402) the document;in response to opening the document, determine (404) whether the document includes paragraph identifiers;when it is determined that the document does not include paragraph identifiers, assign (408) a paragraph identifier to each paragraph in the document by randomly generating an identifier for the first paragraph of the document, designating the identifier for the first paragraph of the document as a first document identifier, sequentially assigning identifiers to the remaining paragraphs in the document, and designating a first next paragraph identifier having a value one greater than the identifier assigned to the last paragraph in the document;receive (412) a first message from the server computer (106) that at least one other user is authoring the document;in response to receiving the first message from the server computer (106) that at least one other user is authoring the document, send (414) a second message to the server computer (106), the second message including first metadata for the document, the first metadata including the first document identifier, the first next paragraph identifier, and a first revision identifier;determine a first paragraph identifier range from the first document identifier and from the first next paragraph identifier, the first identifier in the first paragraph identifier range being the first document identifier and the last identifier in the first paragraph identifier range being one less than the first next paragraph identifier;in response to sending the second message to the server computer (106), receive (416) a third message from the server computer (106), the third message including second metadata for the document, the second metadata including a second document identifier, a second paragraph identifier range and a second revision identifier;determine a second paragraph identifier range from the second document identifier and from the second next paragraph identifier, the first identifier in the second paragraph identifier range being the second document identifier and the last identifier in the second paragraph identifier range being one less than the second next paragraph identifier;in response to receiving the third message from the server computer (106), determine (416) whether the first metadata and the second metadata should be merged by: determine (502) whether the first revision identifier matches the second revision identifier;when it is determined that the first revision identifier matches the second revision identifier, determine (506) whether the first document identifier matches the second document identifier;when it is determined that the first revision identifier matches the second revision identifier and when it is determined that the first document identifier does not match the second document identifier, determine (510) whether the size of the first paragraph identifier range matches the size of the second paragraph identifier range;when it is determined that the first revision identifier matches the second revision identifier, when it is determined that the first document identifier does not match the second document identifier and when it is determined that the size of the first paragraph identifier range matches the size of the second paragraph identifier range, determine that the first metadata and the second metadata should be merged;and when it is determined that the first metadata and the second metadata should be merged, adjust (422) paragraph identifiers in the document based on the second metadata.