Fast merge support for legacy documents
First Claim
1. A method implemented on a client computer, for merging document metadata at a client computer, the method comprising:
- obtaining, by the client computer, a document from a server computer at the client computer, the document being requested by a user at the client computer;
opening the document at the client computer;
in response to opening the document at the client computer, determining, by the client computer, whether the document includes unit identifiers, the unit identifiers including one or more paragraph identifiers, sentence identifiers or table identifiers;
when a determination is made that the document does not include paragraph identifiers, assigning a paragraph identifier to each paragraph in the document;
receiving a first message from the server computer providing notification that at least one other user is authoring the document;
in response to receiving the first message from the server computer that at least one other user is authoring the document, sending a second message to the server computer, the second message including first metadata for the document, the first metadata including a first next paragraph identifier for the document, a first document identifier and a first revision identifier;
determining a first paragraph identifier range from the first document identifier and from the first next paragraph identifier, a first identifier in the first paragraph identifier range being the first document identifier and a 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, receiving a third message from the server computer, the third message including second metadata for the document, the second metadata including a second next paragraph identifier for the document, a second document identifier and a second revision identifier;
determining a second paragraph identifier range from the second document identifier and from the second next paragraph identifier, a first identifier in the second paragraph identifier range being the second document identifier and a 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, determining whether the first metadata and the second metadata should be merged by;
determining whether the first revision identifier matches the second revision identifier;
when a determination is made that the first revision identifier matches the second revision identifier, determining whether the first document identifier matches the second document identifier;
when a determination is made that the first revision identifier matches the second revision identifier and when a determination is made that the first document identifier does not match the second document identifier, determining whether a size of the first paragraph identifier range matches a size of the second paragraph identifier range; and
when a determination is made that the first revision identifier matches the second revision identifier, when a determination is made that the first document identifier does not match the second document identifier and when a determination is made that 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 a determination is made that the first metadata and the second metadata should be merged, adjusting paragraph identifiers in the document based on the second metadata.
3 Assignments
0 Petitions
Accused Products
Abstract
A method is presented for merging document metadata at a client computer. A document obtained from a server computer is opened by a user at the client computer. If the document does not include paragraph identifiers, a paragraph identifier is assigned to each paragraph in the document. When the document is opened by a second user at a second client computer, metadata for the document is received from the server computer. A determination is made whether to merge the metadata received from the server computer with current metadata for the document. When it is determined that the current metadata and the metadata received from the server computer should be merged, paragraph identifiers are adjusted in the document based on the metadata received from the server computer.
275 Citations
13 Claims
-
1. A method implemented on a client computer, for merging document metadata at a client computer, the method comprising:
-
obtaining, by the client computer, a document from a server computer at the client computer, the document being requested by a user at the client computer; opening the document at the client computer; in response to opening the document at the client computer, determining, by the client computer, whether the document includes unit identifiers, the unit identifiers including one or more paragraph identifiers, sentence identifiers or table identifiers; when a determination is made that the document does not include paragraph identifiers, assigning a paragraph identifier to each paragraph in the document; receiving a first message from the server computer providing notification that at least one other user is authoring the document; in response to receiving the first message from the server computer that at least one other user is authoring the document, sending a second message to the server computer, the second message including first metadata for the document, the first metadata including a first next paragraph identifier for the document, a first document identifier and a first revision identifier; determining a first paragraph identifier range from the first document identifier and from the first next paragraph identifier, a first identifier in the first paragraph identifier range being the first document identifier and a 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, receiving a third message from the server computer, the third message including second metadata for the document, the second metadata including a second next paragraph identifier for the document, a second document identifier and a second revision identifier; determining a second paragraph identifier range from the second document identifier and from the second next paragraph identifier, a first identifier in the second paragraph identifier range being the second document identifier and a 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, determining whether the first metadata and the second metadata should be merged by; determining whether the first revision identifier matches the second revision identifier; when a determination is made that the first revision identifier matches the second revision identifier, determining whether the first document identifier matches the second document identifier; when a determination is made that the first revision identifier matches the second revision identifier and when a determination is made that the first document identifier does not match the second document identifier, determining whether a size of the first paragraph identifier range matches a size of the second paragraph identifier range; and when a determination is made that the first revision identifier matches the second revision identifier, when a determination is made that the first document identifier does not match the second document identifier and when a determination is made that 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 a determination is made that the first metadata and the second metadata should be merged, adjusting paragraph identifiers in the document based on the second metadata. - View Dependent Claims (2, 3, 4, 5, 6, 7)
-
-
8. A computing device, comprising:
-
a processing unit; a system memory connected to the processing unit, the system memory comprising instructions that, when executed by the processing unit, cause the processing unit to create; a metadata processing module that generates, monitors and stores metadata for a document on the computing device, the metadata including first metadata and second metadata, the first metadata including a first document identifier, a first next paragraph identifier and a first revision identifier, the second metadata including a second document identifier, a second next paragraph identifier and a second revision identifier, the metadata processing module generating a first paragraph identifier range from the first document identifier and from the first next paragraph identifier and a second paragraph identifier range from the second document identifier and from the second next paragraph identifier, the first paragraph identifier range including a first paragraph identifier and a last paragraph identifier, the first paragraph identifier having a value equal to the first document identifier and the last paragraph identifier having a value equal to one less than the first next paragraph identifier; and a metadata merge module that merges the metadata for the document with metadata received from a server computer, wherein the metadata merge module determines that the first metadata and the second metadata should be merged and adjusts paragraph identifiers in the document based on the second metadata when a determination is made that the first revision identifier matches the second revision identifier and when a determination is made that the first document identifier does not match the second document identifier and when a determination is made that a size of the first paragraph identifier range matches a size of the second paragraph identifier range. - View Dependent Claims (9, 10, 11, 12)
-
-
13. A computer-readable data storage memory comprising instructions that, when executed by a processing unit of an electronic computing device, cause the processing unit to:
-
obtain a document from a server computer, the document being requested by a user at the electronic computer device; open the document; in response to opening the document, determine whether the document includes paragraph identifiers; when it is determined that the document does not include paragraph identifiers, assign a paragraph identifier to each paragraph in the document by; randomly generate an identifier for the first paragraph of the document; designate the identifier for the first paragraph of the document as a first document identifier; sequentially assign identifiers to the remaining paragraphs in the document; and designate a first next paragraph identifier having a value one greater than the identifier assigned to the last paragraph in the document; receive a first message from the server computer that at least one other user is authoring the document; in response to receiving the first message from the server computer that at least one other user is authoring the document, send a second message to the server computer, 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, receive a third message from the server computer, 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, determine whether the first metadata and the second metadata should be merged by; determine 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 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 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 paragraph identifiers in the document based on the second metadata by; designate the second document identifier as the first document identifier, the second document identifier also being designated as the paragraph identifier for the first paragraph in the first paragraph identifier range; assign paragraph identifiers in the second paragraph identifier range to corresponding paragraphs in the first paragraph identifier range; determine whether a paragraph identifier in the document from a paragraph not included in the first paragraph identifier range matches a paragraph identifier in the second paragraph identifier range; and when it is determined that a paragraph identifier in the document from a paragraph not included in the first paragraph identifier range matches a paragraph identifier in the second paragraph identifier range, assign the paragraph identifier in the document that matches a paragraph identifier in the second paragraph identifier range to a paragraph identifier in the first paragraph identifier range.
-
Specification