объединение документов
Классы МПК: | G06F17/24 редактирование, например, вставка/удаление |
Автор(ы): | БЕЙЛОР Джонатан Бекетт (US), БЕРНСТЕЙН Итан Джозеф (US), НАЙТ Марк Ролланд (US), АНТОС Кристофер Джеймс (US) |
Патентообладатель(и): | МАЙКРОСОФТ КОРПОРЕЙШН (US) |
Приоритеты: |
подача заявки:
2008-11-18 публикация патента:
10.05.2013 |
Изобретение относятся к объединению документов. Техническим результатом является повышение эффективности и ускорение процесса объединения документов. Для достижения технического результата предложены способ и система объединения первого документа со вторым документом для генерации третьего документа. Каждый из первого и второго документов включает в себя, по меньшей мере, один элемент данных. Каждый элемент данных связан с элементным идентификатором (Э-идентификатор) и редакционным идентификатором (Р-идентификатор). Э-идентификаторы каждого из документов сравнивают с Э-идентификаторами другого документа для определения, является ли каждый Э-идентификатор совпадающим или несовпадающим Э-идентификатором. Р-идентификаторы элементов данных, связанных с совпадающими Э-идентификаторами, сравнивают друг с другом. Элементы данных, связанные с несовпадающими Э-идентификаторами, вставляют непосредственно в третий документ. Элементы данных, связанные с совпадающими Э-идентификаторами и совпадающими Р-идентификаторами, вставляют непосредственно в третий документ. Элементы данных, связанные с совпадающими Э-идентификаторами и несовпадающими Р-идентификаторами, объединяют в третий документ. 3 н. и 17 з.п. ф-лы, 9 ил.
Формула изобретения
1. Способ объединения первого документа (220) с, по меньшей мере, вторым документом (240) для генерации третьего документа (260), причем каждый из первого и второго документов (220, 240) включает в себя один или несколько элементов данных (124а, 124b, 124с, 124d, 124e, 124f), причем каждый элемент данных (124а, 124b, 124с, 124d, 124e, 124f) связан с элементным идентификатором (U1, U2, U3, U4) и редакционным идентификатором (Е1, Е3, Е4, Е20, Е21), причем способ содержит этапы, на которых
получают элементные идентификаторы (U1, U2, U3) элементов данных (124а, 124b, 124с) первого документа (220),
получают элементные идентификаторы (U1, U2, U4) элементов данных (124d, 124e, 124f) второго документа (240),
сравнивают элементные идентификаторы (U1, U2, U3, U4) каждого из первого и второго документов (220, 240) с элементными идентификаторами (U1, U2, U3, U4) другого из первого и второго документов (220, 240) для определения, является ли каждый из элементных идентификаторов (U1, U2, U3, U4) совпадающим элементным идентификатором или несовпадающим элементным идентификатором, причем каждый из совпадающих элементных идентификаторов указывает соответствующие элементы данных (124а, 124b, 124с, 124d, 124e, 124f) первого и второго документов (220, 240), и каждый из несовпадающих элементных идентификаторов указывает элемент данных (124а, 124b, 124с, 124d, 124e, 124f) одного из первого и второго документов (220, 240), который не соответствует никакому элементу данных (124а, 124b, 124с, 124d, 124e, 124f) другого из первого и второго документов (220, 240),
сравнивают редакционные идентификаторы (Е1, Е3, Е4, Е20, Е21) элементов данных (124а, 124b, 124с, 124d, 124e, 124f), связанных с совпадающими элементными идентификаторами, для выявления совпадающих редакционных идентификаторов, причем каждый из совпадающих редакционных идентификаторов, указывающий элемент данных (124а, 124b, 124с, 124d, 124e, 124f) одного из первого и второго документов (220, 240) совпадает с соответствующим элементом данных (124а, 124b, 124с, 124d, 124e, 124f) другого из первого и второго документов (220, 240),
вставляют непосредственно в третий документ (260) элементы данных (124а, 124b, 124с, 124d, 124e, 124f) первого и второго документов (220, 240), которые связаны с несовпадающими элементными идентификаторами,
вставляют непосредственно в третий документ (260) элементы данных (124а, 124b, 124с, 124d, 124e, 124f) первого и второго документов (220, 240), которые связаны с совпадающими элементными идентификаторами и совпадающими редакционными идентификаторами, и
объединяют в третий документ (260) элементы данных (124а, 124b, 124с, 124d, 124e, 124f) первого и второго документов (220, 240), которые связаны с совпадающими элементными идентификаторами и несовпадающими редакционными идентификаторами.
2. Способ по п.1, дополнительно содержащий этапы, на которых присваивают элементный идентификатор каждому элементу данных первого документа, и
сохраняют элементные идентификаторы в первом документе.
3. Способ по п.1, дополнительно содержащий этапы, на которых присваивают редакционный идентификатор каждому элементу данных первого документа и
сохраняют редакционные идентификаторы в первом документе.
4. Способ по п.3, в котором на этапе сохранения редакционных идентификаторов сохраняют редакционные идентификаторы, когда пользователь сохраняет первый документ.
5. Способ по п.3, в котором на этапе присвоения редакционного идентификатора генерируют случайный идентификатор.
6. Способ по п.1, в котором на этапе получения элементных идентификаторов элементов данных первого документа получают идентификаторы абзацев для абзацев первого документа.
7. Система (100) обработки документов, содержащая
приложение (110) обработки документов, выполненное с возможностью объединения друг с другом, по меньшей мере, двух документов (220, 240) для генерации третьего документа (260), и
первый документ (120), подлежащий обработке приложением (110) обработки документов, причем в первом документе (120) хранятся контент (130) и метаданные (140), причем контент (130) первого документа (120) включает в себя, по меньшей мере, один элемент данных (124), и метаданные (140) первого документа (120) включают в себя элементный идентификатор (126) и редакционный идентификатор (128), связанные с каждым элементом данных, причем элементный идентификатор (126) каждого элемента данных генерируют при создании элемента данных (124), и редакционный идентификатор (128) каждого элемента данных генерируют при сохранении модификации элемента данных (124).
8. Система обработки документов по п.7, в которой приложение обработки документов выполнено с возможностью генерации элементного идентификатора каждого элемента данных при создании элемента данных.
9. Система обработки документов по п.7, в которой приложение обработки документов выполнено с возможностью генерации редакционного идентификатора каждого элемента данных при сохранении модификации в первом документе.
10. Система обработки документов по п.7, дополнительно содержащая файл метаданных, хранящийся отдельно от первого документа, причем файл метаданных включает в себя метаданные, относящиеся к контенту первого документа, причем метаданные файла метаданных включают в себя элементный идентификатор, указывающий, к какому элементу данных относятся метаданные.
11. Система обработки документов по п.10, в которой метаданные, хранящиеся в файле метаданных, связаны с элементом данных, указанным элементным идентификатором, включенным в метаданные.
12. Система обработки документов по п.7, в которой приложение обработки документов выполнено с возможностью сравнения элементных идентификаторов первого документа с элементными идентификаторами второго документа для определения, является ли каждый из элементных идентификаторов совпадающим элементным идентификатором или несовпадающим элементным идентификатором, причем каждый из совпадающих элементных идентификаторов указывает соответствующие элементы данных первого и второго документов, причем каждый из несовпадающих элементных идентификаторов указывает элемент данных одного из первого и второго документов, который не соответствует никакому элементу данных другого из первого и второго документов.
13. Система обработки документов по п.12, в которой приложение обработки документов выполнено с возможностью сравнения редакционных идентификаторов элементов данных, связанных с совпадающими элементными идентификаторами, для выявления совпадающих редакционных идентификаторов, причем каждый из совпадающих редакционных идентификаторов указывает, что элемент данных одного из первого и второго документов совпадает с соответствующим элементом данных другого из первого и второго документов.
14. Система обработки документов по п.7, в которой документ представляет собой текстовый документ.
15. Система обработки документов по п.7, в которой элемент данных является абзацем.
16. Компьютерно-считываемый (604) носитель информации, имеющий компьютерно-выполняемые инструкции для реализации способа генерации объединенного документа (260) из первого документа (220) и второго документа (240), причем способ содержит этапы, на которых
определяют, имеет ли первый документ (220) идентификатор (U1, U2, U3) первого документа, причем идентификатор (U1, U2, U3) первого документа идентифицирует первый документ (220),
получают идентификатор (U1, U2, U3) первого документа, если первый документ (220) имеет идентификатор (U1, U2, U3) первого документа,
определяют, имеет ли второй документ (240) идентификатор (U1, U2, U4) второго документа, причем идентификатор (U1, U2, U4) второго документа идентифицирует второй документ (240),
получают идентификатор (U1, U2, U4) второго документа, если второй документ (220) имеет идентификатор (U1, U2, U4) второго документа,
сравнивают идентификатор (U1, U2, U3) первого документа от первого документа (220) с идентификатором (U1, U2, U4) второго документа от второго документа (240),
осуществляют традиционное объединение первого и второго документов (220, 240) для генерации объединенного документа (260), если какой-либо из первого и второго документов (220, 240) не имеет идентификатора (U1, U2, U3, U4) документа,
осуществляют традиционное объединение первого и второго документов (220, 240) для генерации объединенного документа (260), если идентификатор (U1, U2, U3) первого документа от первого документа (220) отличается от идентификатора (U1, U2, U4) второго документа от второго документа (240), и
осуществляют ускоренное объединение первого и второго документов (220, 240) для генерации объединенного документа (260), если идентификатор (U1, U2, U3) первого документа от первого документа (220) совпадает с идентификатором (U1, U2, U4) второго документа от второго документа (240).
17. Компьютерно-считываемый носитель информации по п.16, в котором на этапе осуществления ускоренного объединения
идентифицируют элементы данных первого документа, совпадающие с элементами данных второго документа, посредством сравнения уникальных устойчивых идентификаторов каждого элемента данных первого документа с уникальными устойчивыми идентификаторами каждого элемента данных второго документа,
вставляют идентифицированные элементы данных непосредственно в объединенный документ для создания элементов данных объединенного документа, и
объединяют каждый элемент данных одного из первого и второго документов, который не совпадает ни с одним элементом данных другого из первого и второго документов, с использованием традиционного объединения для дополнительного создания элементов данных объединенного документа.
18. Компьютерно-считываемый носитель информации по п.16, в котором способ дополнительно содержит этапы, на которых
добавляют уникальные устойчивые идентификаторы к каждому из элементов данных объединенного документа, если какой-либо из первого и второго документов не имеет идентификатора документа, и
добавляют уникальные устойчивые идентификаторы к каждому из элементов данных объединенного документа, если идентификатор документа от первого документа отличается от идентификатора документа от второго документа.
19. Компьютерно-считываемый носитель информации по п.18, в котором на этапе добавления уникальных устойчивых идентификаторов к каждому из элементов данных объединенного документа сохраняют уникальные устойчивые идентификаторы в объединенном документе.
20. Компьютерно-считываемый носитель информации по п.17, в котором на этапе сравнения уникальных устойчивых идентификаторов каждого элемента данных первого документа с уникальными устойчивыми идентификаторами каждого элемента данных второго документа сравнивают элементный идентификатор и редакционный идентификатор каждого элемента данных первого документа с элементным идентификатором и редакционным идентификатором каждого элемента данных второго документа.
Описание изобретения к патенту
Объединение - это процесс сведения воедино многочисленных изменений, внесенных в разные копии одного и того же документа. Чаще всего оно требуется, когда документ одновременно изменяется двумя людьми. Позже эти изменения необходимо свести в единый новый документ, отражающий намерения обоих авторов.
Традиционное объединение может быть громоздким и требовать много времени. Желательно более эффективное объединение.
Сущность изобретения
Рассмотренный здесь аспект некоторых вариантов осуществления предусматривает способ объединения первого документа с, по меньшей мере, вторым документом для генерации третьего документа. Каждый из первого и второго документов включает в себя, по меньшей мере, один элемент данных. Каждый элемент данных связан с элементным идентификатором и редакционным идентификатором. Способ включает в себя этап, на котором получают элементные идентификаторы элементов данных первого документа. Способ также включает в себя этап, на котором получают элементные идентификаторы элементов данных второго документа. Элементные идентификаторы каждого из первого и второго документов сравнивают с элементными идентификаторами другого из первого и второго документов для определения, является ли каждый из элементных идентификаторов совпадающим элементным идентификатором или несовпадающим элементным идентификатором. Совпадающие элементные идентификаторы указывают соответствующие элементы данных первого и второго документов. Каждый из несовпадающих элементных идентификаторов указывает элемент данных одного из первого и второго документов, который не соответствует никакому элементу данных другого из первого и второго документов. Редакционные идентификаторы элементов данных, связанных с совпадающими элементными идентификаторами, сравнивают друг с другом для выявления совпадающих редакционных идентификаторов. Каждый из совпадающих редакционных идентификаторов указывает, что элемент данных одного из первого и второго документов совпадает с соответствующим элементом данных другого из первого и второго документов. Элементы данных первого и второго документов, связанные с несовпадающими элементными идентификаторами, вставляют непосредственно в третий документ. Кроме того, элементы данных первого и второго документов, связанные с совпадающими элементными идентификаторами и совпадающими редакционными идентификаторами, вставляют непосредственно в третий документ. Наконец, элементы данных первого и второго документов, связанные с совпадающими элементными идентификаторами и несовпадающими редакционными идентификаторами, объединяют в третий документ.
Другой аспект некоторых вариантов осуществления предусматривает систему обработки документов. Система обработки документов включает в себя приложение обработки документов и первый документ. Приложение обработки документов выполнено с возможностью объединения друг с другом, по меньшей мере, двух документов для генерации третьего документа. Первый документ подлежит обработке приложением обработки документов. В первом документе хранятся контент и метаданные. Контент включает в себя, по меньшей мере, один элемент данных. Метаданные включают в себя элементный идентификатор и редакционный идентификатор, связанные с каждым элементом данных. Элементный идентификатор каждого элемента данных генерируется при создании элемента данных. Редакционный идентификатор каждого элемента данных генерируется при сохранении модификации элемента данных.
Другие аспекты предусматривают компьютерно-считываемый носитель информации, имеющий компьютерно-выполняемые инструкции для реализации способа генерации объединенного документа из первого документа и второго документа. Способ включает в себя этап, на котором определяют, имеет ли первый документ идентификатор первого документа и имеет ли второй документ идентификатор второго документа. Способ также включает в себя этап, на котором получают один из идентификаторов первого и второго документа, если один из первого и второго документов имеет один из идентификаторов первого и второго документа. Способ дополнительно включает в себя этап, на котором сравнивают идентификатор первого документа из первого документа с идентификатором второго документа из второго документа. Способ включает в себя этап, на котором осуществляют традиционное объединение первого и второго документов для генерации объединенного документа, если какой-либо из первого и второго документов не имеет идентификатора документа. Кроме того, способ включает в себя этап, на котором осуществляют традиционное объединение первого и второго документов для генерации объединенного документа, если идентификатор первого документа отличается от идентификатора второго документа. Наконец, способ включает в себя этап, на котором осуществляют ускоренное объединение первого и второго документов для генерации объединенного документа, если идентификатор первого документа совпадает с идентификатором второго документа.
Эта «сущность изобретения» призвана обозначить в упрощенном виде основные концепции, которые дополнительно описаны ниже в «подробном описании». Эта «сущность» не призвана выявлять ключевые признаки или существенные признаки заявленного объекта изобретения и никоим образом не определяет объем заявленного объекта изобретения.
Краткое описание чертежей
Фиг.1 - блок-схема иллюстративной системы обработки документов.
Фиг.2 - блок-схема, демонстрирующая иллюстративный документ, подлежащий обработке иллюстративным приложением обработки документов, показанным на фиг.1.
Фиг.3 - блок-схема, демонстрирующая иллюстративный формат документа, показанного на фиг.2.
Фиг.4 - блок-схема, демонстрирующая другой иллюстративный документ, аналогичный показанному на фиг.3, за исключением того, что файл метаданных сохраняется отдельно от документа.
Фиг.5 - блок-схема, демонстрирующая объединение первого документа со вторым документом для генерации третьего документа.
Фиг.6 - иллюстративная вычислительная система для реализации аспектов настоящего изобретения.
Фиг.7 - иллюстративный способ объединения первого документа со вторым документом для генерации третьего документа.
Фиг.8 - иллюстративный способ присвоения и сохранения элементного идентификатора и редакционного идентификатора каждому элементу данных документа.
Фиг.9 - другой иллюстративный способ объединения первого документа со вторым документом для генерации объединенного документа.
Подробное описание
Ниже приведено более полное описание иллюстративных вариантов осуществления со ссылкой на прилагаемые чертежи, где показаны конкретные варианты осуществления. Однако другие аспекты можно реализовать в различных других формах, и включение конкретных вариантов осуществления в описание изобретения не следует рассматривать в порядке ограничения таких аспектов представленными здесь вариантами осуществления. Напротив, варианты осуществления, представленные на чертежах, включены для обеспечения полноты описания, для полного представления объема изобретения специалистам в данной области техники. На фигурах аналогичные структуры и элементы обозначены аналогичными позициями.
Варианты осуществления настоящего изобретения, в целом, относятся к объединению документов. В одном неограничительном примере описано объединение первого документа с, по меньшей мере, вторым документом для генерации третьего документа. Каждый из первого и второго документов включает в себя, по меньшей мере, один элемент данных. Каждый элемент данных связан с элементным идентификатором и редакционным идентификатором. Другие варианты осуществления относятся к системе обработки документов. Система обработки документов включает в себя приложение обработки документов, которое способно объединять друг с другом, по меньшей мере, два документа для генерации третьего документа.
На фиг.1 показана блок-схема иллюстративной системы обработки документов. Система 100 обработки документов включает в себя приложение 110 обработки документов и документы 120. Приложение 110 обработки документов способно объединять друг с другом документы 120 для генерации объединенного документа. В альтернативных вариантах осуществления приложение 110 обработки документов способно объединять друг с другом три, четыре или более документов для генерации объединенного документа.
В одном возможном варианте осуществления приложение 110 обработки документов представляет собой приложение текстового редактора, например, но без ограничения, приложение MICROSOFT® Office Word. В других возможных вариантах осуществления система 100 обработки документов представляет собой систему обработки изображений, данных, речи или любую другую подходящую систему обработки документов. Аналогично приложение 110 обработки документов также может представлять собой приложение обработки изображений, данных, речи или любое другое подходящее приложение обработки документов, например, но без ограничения, прикладные программы POWERPOINT®, EXCEL®, VISIO®, ACCESS и OUTLOOK® из пакета Microsoft® Office. Документы 120 могут представлять собой документы в формате текст или обогащенный текст, презентации, электронные таблицы, чертежи, данные, сообщения электронной почты и любые другие документы в подходящем формате.
На фиг.2 показана блок-схема, демонстрирующая иллюстративный документ 120, подлежащий обработке иллюстративным приложением 110 обработки документов, показанным на фиг.1. Документ 120 делится на один или несколько элементов 124 данных. Каждому элементу 124 данных присваивается уникальный элементный идентификатор 126, который сохраняется на протяжении времени существования элемента 124 данных. Элементный идентификатор 126 идентифицирует и позволяет отличать связанный с ним элемент 124 данных от любых других элементов данных в документе 120.
Элементу 124 данных также присваивается редакционный идентификатор 128 при создании, редактировании или изменении элемента 124 данных. В частности, всякий раз при создании, редактировании или изменении элемента 124 данных элементу 124 данных присваивается новый редакционный идентификатор 128, в связи с чем новый редакционный идентификатор 128 заменяет предыдущий редакционный идентификатор (если таковой существует) элемента 124 данных. Новый редакционный идентификатор 128 отличается от предыдущего редакционного идентификатора (если таковой существует) элемента 124 данных. В одном возможном варианте осуществления редакционный идентификатор 128 генерируется случайным образом.
В иллюстративных вариантах осуществления документ 120 разбивается на элементы 124 данных различными способами. Например, если документ 120 является текстовым документом, каждый абзац документа можно разбить на отдельный элемент данных. Иными словами, в примере текстового документа элемент 124 данных также можно называть абзацем. В таком примере элементные идентификаторы 126 рассматриваются как идентификаторы абзацев. В документах других типов для разбиения документа 120 на элементы данных можно использовать другие способы. Например, объекты, графику, слайды или другие выбираемые фрагменты в документе можно использовать для разбиения документа на отдельные элементы данных.
Элементный идентификатор 126 и редакционный идентификатор 128 могут иметь любые пригодные форматы для идентификации элемента 124 данных. Один возможный иллюстративный формат элементного идентификатора 126 и редакционного идентификатора 128 представляет собой комбинацию чисел, букв и/или символов, например 32-битовое целое число. Специалистам в данной области техники известно много других подходящих форматов идентификатора для элементного идентификатора 126 и редакционного идентификатора 128. Элементный идентификатор 126 и редакционный идентификатор 128 могут храниться в документе 120 в отдельном файле или в любой другой подходящей сохраняемой и доступной среде. Некоторые иллюстративные форматы сохранения элементного идентификатора 126 и редакционного идентификатора 128 более подробно рассмотрены ниже со ссылкой на фиг.3-4.
Документ 120 также включает в себя идентификатор 122 документа для идентификации документа 120. В одном возможном варианте осуществления идентификатор 122 документа присваивается документу 120 при создании документа 120. В другом возможном варианте осуществления идентификатор 122 документа присваивается документу 120, когда документ 120 не имеет идентификатора документа. Например, идентификатор 122 документа присваивается документу 120, когда документ 120 предварительно редактируется приложением, которое не распознает элементные или редакционные идентификаторы.
Идентификатор 122 документа является уникальным и устойчивым, когда идентификатор 122 документа присваивается документу 120. Иными словами, идентификатор 122 документа сохраняется на протяжении времени существования документа 120. Даже при редактировании и изменении документа 120 идентификатор 122 документа не изменяется. Кроме того, когда отдельный документ создается из документа 120 идентификатор 122 документа остается с отдельным документом. Это может происходить, когда пользователь копирует документ в новый документ, или при создании нескольких пользовательских копий документа, чтобы несколько пользователей могли редактировать один и тот же документ.
На фиг.3 показана блок-схема, демонстрирующая иллюстративный формат документа 120, показанного на фиг.2. В частности, документ 120 включает в себя контент 130 и метаданные 140. В документе 120 хранятся контент 130 и метаданные 140. Контент 130 включает в себя, по меньшей мере, один элемент 124 данных. Метаданные 140 включают в себя элементный идентификатор 126 и редакционный идентификатор 128, которые связаны с каждым элементом 124 данных. Элементный идентификатор 126 генерируется при создании элемента 124 данных. Редакционный идентификатор 128 генерируется всякий раз, когда модификация элемента 124 данных сохраняется в документе. Метаданные 140 сохраняются в документе 120.
На фиг.4 показана блок-схема, демонстрирующая еще один иллюстративный документ 120, сходный с показанным на фиг.3, за исключением того, что файл 150 метаданных сохраняется отдельно от документа 120. Предпочтительно файл 150 метаданных включает в себя метаданные 140, относящиеся к контенту 130 документа 120. Метаданные 140 файла 150 метаданных включают в себя элементный идентификатор 126, который указывает, к какому элементу 124 данных относятся метаданные 140. В одном возможном варианте осуществления метаданные 140 также могут включать в себя редакционный идентификатор 128. Элемент 124 данных указывается элементным идентификатором 126, включенным в метаданные 140.
На фиг.5 показана блок-схема, демонстрирующая объединение первого документа 220 со вторым документом 240 для генерации третьего документа 260. Иллюстративные структуры первого документа 220 и второго документа 240 описаны выше со ссылкой на фиг.1-4. Третий документ 260 - это объединенный документ, созданный путем объединения первого документа 220 и второго документа 240.
В примере, показанном на фиг.5, первый документ 220 включает в себя идентификатор 122a первого документа и элементы 124a-c данных. Идентификатор 122a первого документа идентифицирует первый документ 220. На фиг.5 показано три элемента 124a-c данных, однако первый документ 220 может включать в себя больше или меньше чем три элемента данных. Что касается показанных элементов 124a-c данных, элемент 124a данных имеет элементный идентификатор U1 и редакционный идентификатор E1, которые связаны с элементом 124a данных. Элемент 124b данных имеет элементный идентификатор U2 и редакционный идентификатор E20, связанные с элементом 124b данных. Элемент 124c данных имеет элементный идентификатор U3 и редакционный идентификатор E3, связанные с элементом 124c данных.
Аналогично второй документ 240 включает в себя идентификатор 122b второго документа и элементы 124d-f данных. Идентификатор 122b второго документа идентифицирует второй документ 240. На фиг.5 показано три элемента 124d-f данных, однако второй документ 240 может включать в себя больше или меньше чем три элемента данных. Элемент 124d данных имеет элементный идентификатор U1 и редакционный идентификатор E1, связанные с элементом 124d данных. Элемент 124e данных имеет элементный идентификатор U2 и редакционный идентификатор E21, связанные с элементом 124e данных. Как было отмечено, редакционный идентификатор E21 элемента 124e данных во втором документе 240 отличается от редакционного идентификатора E20 элемента 124b данных в первом документе 220. Элемент 124f данных имеет элементный идентификатор U4 и редакционный идентификатор E4, связанные с элементом 124f данных.
В иллюстративном объединении, показанном на фиг.5, идентификатор 122a первого документа из первого документа 220 совпадает с идентификатором 122b второго документа из второго документа 240. Таким образом, осуществляется ускоренное объединение первого документа 220 и второго документа 240, которое подробно описано ниже. Поскольку первый документ 220 и второй документ 240 имеют один и тот же идентификатор документа, первый и второй документы 220, 240 совместно используют общий источник или исходный документ. Поэтому первый документ 220 можно объединять со вторым документом 240 с использованием одного или нескольких процессов ускоренного объединения, описанных ниже.
Элемент 124a данных первого документа 220 имеет такие же элементный идентификатор U1 и редакционный идентификатор E1, что и элемент 124d данных второго документа 240. Поэтому указание на элемент 124a данных такое же, как на элемент 124d данных. Иными словами, элемент 124d данных не был изменен или модифицирован относительно элемента 124a данных. Соответственно, объединение элемента 124a данных и элемента 124d данных не требуется. Напротив, элемент 124a данных (или элемент 124d данных, который идентичен элементу 124a данных) непосредственно вставляется в третий документ 260, что указано как элемент 124g данных. Поскольку нет необходимости в объединении элемента 124a данных и элемента 124d данных, элементный идентификатор U1 и редакционный идентификатор E1 элемента 124g данных в объединенном документе (т.е. в третьем документе) 260 остаются неизменными. Эта непосредственная вставка без дополнительного сравнения содержимого элемента 124a данных с содержимым элемента 124d данных позволяет сэкономить время, повысить эффективность и повысить точность объединения.
Элемент 124b данных и элемент 124e данных имеют один и тот же элементный идентификатор U2, но имеют разные редакционные идентификаторы E20, E21. Разные редакционные идентификаторы E20, E21 указывают, что элемент 124b данных и элемент 124e данных могут быть различны. Иными словами, необходимо объединение элемента 124b данных и элемента 124e данных. Поэтому элемент 124h данных в третьем документе 260 генерируется из объединения элемента 124b данных и элемента 124e данных. Элементный идентификатор U2 элемента 124h данных остается неизменным. При объединении элементов 124b и 124e данных создается новый редакционный идентификатор E22.
Для элемента 124c данных первого документа 220 не существует ни одного элемента данных во втором документе 240, элементный идентификатор которого совпадал бы с элементным идентификатором U3 элемента 124c данных. Таким образом, элемент 124c данных непосредственно вставляется в третий документ 260 без объединения и рассматривается как элемент 124i данных в третьем документе 260. Элемент 124i данных, таким образом, включает в себя элементный идентификатор U3 и редакционный идентификатор E3, связанные с элементом 124i данных. Элемент 124i данных в третьем документе 260 в точности идентичен элементу 124c данных в первом документе 220. В одном возможном варианте осуществления элемент 124c данных непосредственно присоединяется к концу третьего документа 260. В другом возможном варианте осуществления элемент 124c данных (без объединения содержимого элемента 124c данных) сортируется для вставки в правильное положение третьего документа 260 согласно соотношениями между элементами 124a-j данных.
Аналогично для элемента 124f данных второго документа не существует ни одного элемента данных в первом документе 220, элементный идентификатор которого совпадал бы с элементным идентификатором U4 элемента 124f данных. Поэтому элемент 124f данных непосредственно вставляется в третий документ 260 без объединения и рассматривается как элемент 124j данных в третьем документе 260. Элемент 124j данных, таким образом, включает в себя элементный идентификатор U4 и редакционный идентификатор E4, связанные с элементом 124j данных. Элемент 124j данных в третьем документе 260 в точности идентичен элементу 124f данных во втором документе 240. В одном возможном варианте осуществления элемент 124f данных непосредственно присоединяется к концу третьего документа 260. В другом возможном варианте осуществления элемент 124f данных (без объединения содержимого элемента 124f данных) сортируется для вставки в правильное положение третьего документа 260 согласно соотношениям между элементами 124a-j данных.
Таким образом, объединенный документ 260 включает в себя элементы 124g-j данных. Каждый из элементов 124g-j данных также связан с элементным идентификатором и редакционным идентификатором. Кроме того, идентификатор 122a документа (или 122b, который идентичен 122a) остается в объединенном документе 260 и указан как идентификатор 122c документа на фиг.5.
В другом возможном варианте осуществления, если идентификатор 122a документа из первого документа 220 отличается от идентификатора 122b документа из второго документа 240, осуществляется традиционное объединение первого документа и второго документа. В еще одном возможном варианте осуществления, если какой-либо из первого и второго документов 220, 240 не имеет идентификатора документа, осуществляется традиционное объединение для генерации третьего документа.
В примере, представленном на фиг.5, показано объединение двух документов с образованием объединенного третьего документа. Однако оно не ограничивается объединением только двух документов. Напротив, проиллюстрированные здесь идеи и принципы можно применять к объединению более чем двух документов.
На фиг.6 показана иллюстративная вычислительная система 600 для реализации аспектов настоящего изобретения. Например, вычислительная система 600 может представлять собой систему 100 обработки документов, рассмотренную выше, которая используется для создания и/или объединения двух или более документов, например документов 220, 240, описанных выше. В этой, наиболее базовой, конфигурации, вычислительная система 600 обычно включает в себя, по меньшей мере, один процессор 602 и память 604. В зависимости от конкретной конфигурации и типа вычислительной системы память 604 может представлять собой энергозависимую память (например, ОЗУ), энергонезависимую память (например, ПЗУ, флэш-память и т.д.) или какую-либо их комбинацию. Эта наиболее базовая конфигурация представлена на фиг.6 пунктирной линией 606. Дополнительно, вычислительная система 600 также может иметь дополнительные признаки/функции. Например, вычислительная система 600 также может включать в себя дополнительное запоминающее устройство (сменное и/или стационарное), включающее в себя, но без ограничения, магнитные или оптические диски или ленту. Такое дополнительное запоминающее устройство представлено на фиг.6 как сменное запоминающее устройство 608 и стационарное запоминающее устройство 610. Компьютерные носители данных включают в себя энергозависимые и энергонезависимые, сменные и стационарные носители, реализованные с помощью любого метода или технологии для хранения информации, например компьютерно-считываемых инструкций, структур данных, программных модулей или других данных. Память 604, сменное запоминающее устройство 608 и стационарное запоминающее устройство 610 являются примерами компьютерных носителей данных. Компьютерные носители данных включает в себя, но без ограничения, ОЗУ, ПЗУ, ЭСППЗУ, флэш-память или другую технологию памяти, CD-ROM, цифровые универсальные диски (DVD) или другие оптические диски, магнитные кассеты, магнитную ленту, накопитель на магнитных дисках или другие магнитные запоминающие устройства или любой другой носитель, который можно использовать для хранения полезной информации и к которому вычислительная система 600 может осуществлять доступ. Любые такие компьютерные носители данных могут входить в состав вычислительной системы 600.
Вычислительная система 600 также может содержать коммуникационное(ые) соединение(я) 612, позволяющее(ие) вычислительной системе осуществлять связь с другими устройствами. Коммуникационное(ые) соединение(я) 612 - это пример сред передачи данных. Среды передачи данных обычно реализуют компьютерно-считываемые инструкции, структуры данных, программные модули или другие данные в сигнале, модулированном данными, например несущей волне или другом транспортном механизме, и включают в себя любые среды доставки информации. Термин «сигнал, модулированный данными» означает сигнал, одна или несколько характеристик которого изменяется таким образом, чтобы кодировать информацию в сигнале. В порядке примера, но не ограничения, среды передачи данных включает в себя проводные среды, например проводную сеть или прямое проводное соединение, и беспроводные среды, например акустические, РЧ, инфракрасные и другие беспроводные среды. Используемый здесь термин «компьютерно-считываемые носители» включает в себя носители данных и среды передачи данных.
Вычислительная система 600 также может иметь устройство(а) 614 ввода, например клавиатуру, мышь, перо, устройство речевого ввода, сенсорное устройство ввода и т.д. Также может/могут быть включено/ы устройство(а) 616 вывода например дисплей, принтер, громкоговоритель и т.д. Все эти устройства хорошо известны в технике и не нуждаются в дальнейшем рассмотрении.
В некоторых вариантах осуществления память 604 включает в себя одно или несколько из операционной системы 620, прикладных программ 622, других программных модулей 624 и программных данных 626. Например, прикладные программы 622 могут включать в себя приложение текстового редактора, которое используется для создания и/или объединения двух или более документов.
На фиг.7 показан иллюстративный способ 700 объединения первого документа со вторым документом для генерации третьего документа. Согласно показанному способу каждый из первого и второго документов включает в себя, по меньшей мере, один элемент данных. Каждый элемент данных связан с элементным идентификатором и редакционным идентификатором. Приложение обработки документов способно объединять друг с другом первый и второй документы для генерации третьего документа. Как рассмотрено выше, в одном возможном варианте осуществления документы являются текстовыми документами.
На этапе 702 приложение обработки документов получает элементные идентификаторы элементов данных первого документа. В одном возможном варианте осуществления элементные идентификаторы сохраняются в первом документе. В другом возможном варианте осуществления элементные идентификаторы сохраняются в файле метаданных, который отделен от первого документа.
Последовательность выполнения переходит к этапу 704. На этапе 704 приложение обработки документов получает элементные идентификаторы элементов данных второго документа. В одном возможном варианте осуществления элементные идентификаторы сохраняются во втором документе. В другом возможном варианте осуществления элементные идентификаторы сохраняются в файле метаданных, который отделен от второго документа.
Последовательность выполнения переходит к этапу 706. На этапе 706 приложение обработки документов сравнивает элементные идентификаторы каждого из первого и второго документов с элементными идентификаторами другого из первого и второго документов для определения, является ли каждый из элементных идентификаторов совпадающим элементным идентификатором или несовпадающим элементным идентификатором. Совпадающий элементный идентификатор означает, что элементный идентификатор в первом документе идентичен элементному идентификатору во втором документе. Эти совпадающие элементные идентификаторы указывают соответствующие элементы данных первого и второго документов. Несовпадающий элементный идентификатор означает, что элементный идентификатор в одном из первого и второго документов не может быть идентичным никакому элементному идентификатору в другом из первого и второго документов. Каждый из несовпадающих элементных идентификаторов указывает элемент данных одного из первого и второго документов, который не соответствует никакому элементу данных другого из первого и второго документов.
Последовательность выполнения переходит к этапу сравнения 708. На этапе сравнения 708 производится определение, совпадает ли какой-либо элементный идентификатор в одном из первого и второго документов с каким-либо элементным идентификатором в другом из первого и второго документов. Если на этапе сравнения 708 определено, что элементный идентификатор в одном из первого и второго документов не совпадает ни с одним элементным идентификатором в другом из первого и второго документов, то последовательность выполнения выбирает вариант «Нет», и последовательность выполнения переходит к этапу 710. На этапе 710 элемент данных, связанный с несовпадающим элементным идентификатором, непосредственно вставляется в третий документ.
Если на этапе сравнения 708 определено, что элементный идентификатор в одном из первого и второго документов совпадает с каким-либо элементным идентификатором в другом из первого и второго документов, то последовательность выполнения выбирает вариант «Да» и последовательность выполнения переходит к этапу 712.
На этапе 712 приложение обработки документов сравнивает редакционные идентификаторы элементов данных, связанных с совпадающими элементными идентификаторами, для выявления совпадающих редакционных идентификаторов. Каждый из совпадающих редакционных идентификаторов указывает, что элемент данных одного из первого и второго документов совпадает с соответствующим элементом данных другого из первого и второго документов. С другой стороны, каждый из несовпадающих редакционных идентификаторов указывает, что элемент данных одного из первого и второго документов не совпадает с соответствующим элементом данных другого из первого и второго документов.
Последовательность выполнения переходит к этапу сравнения 714. На этапе сравнения 714 производится определение, совпадают ли друг с другом редакционные идентификаторы элементов данных, связанных с совпадающими элементными идентификаторами. Если на этапе сравнения 708 определено, что редакционные идентификаторы совпадают друг с другом, то последовательность выполнения выбирает вариант «Да» и последовательность выполнения переходит к этапу 710. На этапе 710 элемент данных, связанный с совпадающими элементными идентификаторами и совпадающими редакционными идентификаторами, непосредственно вставляется в третий документ.
Если на этапе сравнения 714 определено, что редакционные идентификаторы элементов данных, связанных с совпадающими элементными идентификаторами, не совпадают друг с другом, то последовательность выполнения выбирает вариант «Нет» и последовательность выполнения переходит к этапу 716. На этапе 716, элементы данных, связанные с совпадающими элементными идентификаторами и несовпадающими редакционными идентификаторами, объединяются в элемент данных третьего документа. Это можно делать, например, с использованием традиционного процесса объединения, например алгоритма трехстороннего объединения. Можно использовать и другие традиционные процессы объединения.
Пример, показанный на фиг.7, демонстрирует способ объединения двух документов с образованием объединенного третьего документа. Однако оно не ограничивается объединением двух документов. Напротив, проиллюстрированные здесь идеи и принципы можно применять к объединению более чем двух документов.
На фиг.8 показан иллюстративный способ 800 присвоения и сохранения элементного идентификатора и редакционного идентификатора каждому элементу данных документа. В частности, на этапе 802, элементный идентификатор присваивается каждому элементу данных документа. Элементный идентификатор является уникальным и устойчивым. Элементный идентификатор сохраняется на протяжении времени существования элемента данных. Элементный идентификатор идентифицирует и позволяет отличать связанный с ним элемент данных от любых других элементов данных в документе.
Последовательность выполнения переходит к этапу 804. На этапе 804 элементные идентификаторы сохраняются в документе. В одном возможном варианте осуществления элементные идентификаторы сохраняются в метаданных в документе. В другом возможном варианте осуществления элементные идентификаторы сохраняются в файле метаданных, который отделен от документа.
Последовательность выполнения переходит к этапу 806. На этапе 806 редакционный идентификатор присваивается каждому элементу данных документа всякий раз при создании или редактировании элемента данных. Таким образом, редакционный идентификатор указывает, что элемент данных вновь создан или отредактирован. Редакционный идентификатор отделен от элементного идентификатора. Вновь присвоенный редакционный идентификатор отличается от предыдущего редакционного идентификатора (если таковой существует) элемента данных и заменяет его, когда редакционный идентификатор присваивается элементу данных. В одном возможном варианте осуществления редакционный идентификатор генерируется случайным образом. Иными словами, редакционный идентификатор можно присваивать как случайный идентификатор.
Последовательность выполнения переходит к этапу 808. На этапе 808 редакционные идентификаторы сохраняются в документе. В одном возможном варианте осуществления редакционные идентификаторы сохраняются в метаданных в документе. В другом возможном варианте осуществления редакционные идентификаторы сохраняются в файле метаданных, который отделен от документа. В еще одном возможном варианте осуществления, когда пользователь сохраняет документ, редакционные идентификаторы сохраняются вместе с ним.
На фиг.9 показан другой иллюстративный способ 900 объединения первого документа со вторым документом для генерации объединенного документа. Приложение обработки документов способно объединять друг с другом первый и второй документы для генерации объединенного документа. Способ 900 конкретно иллюстрирует, как обрабатывать первый и второй документы, которые могут не иметь идентификатора документа, связанного с первым и/или вторым документами. Иными словами, в одном возможном варианте осуществления способ 900 показывает, как ретроактивно обрабатывать документы, созданные и/или отредактированные предыдущими версиями приложения обработки документов. Способ 900 показывает, как приложение обработки документов обрабатывает обратную совместимость документа с предыдущими версиями приложения.
Последовательность выполнения начинается с этапа 902. На этапе 902 производится определение, имеет ли первый документ идентификатор первого документа, связанный с первым документом. Если на этапе 902 определено, что с первым документом не связан идентификатор первого документа, то последовательность выполнения выбирает вариант «Нет» и последовательность выполнения переходит к этапу 914 (подробно рассмотренному ниже). Если на этапе 902 определено, что первый документ имеет идентификатор первого документа, связанный с первым документом, то последовательность выполнения выбирает вариант «Да» и последовательность выполнения переходит к этапу 904. На этапе 904 идентификатор первого документа получается из первого документа.
Последовательность выполнения переходит к этапу 906. На этапе 906 производится определение, имеет ли второй документ идентификатор второго документа, связанный со вторым документом. Если на этапе 906 определено, что второй документ не имеет идентификатора второго документа, связанного со вторым документом, то последовательность выполнения выбирает вариант «Нет» и последовательность выполнения переходит к этапу 914. Если на этапе 906 определено, что второй документ имеет идентификатор второго документа, связанный со вторым документом, то последовательность выполнения выбирает вариант «Да» и последовательность выполнения переходит к этапу 908. На этапе 908, идентификатор второго документа получается из второго документа.
Последовательность выполнения переходит к этапу сравнения 910. На этапе сравнения 910 производится определение, совпадает ли идентификатор первого документа из первого документа с идентификатором второго документа из второго документа. Если на этапе сравнения 910 определено, что идентификатор первого документа из первого документа совпадает с идентификатором второго документа из второго документа, то последовательность выполнения выбирает вариант «Да» и последовательность выполнения переходит к этапу 912. На этапе 912 осуществляется ускоренное объединение документов, рассмотренное выше со ссылкой на фиг.7-8. Если на этапе сравнения 910 определено, что идентификатор первого документа из первого документа не совпадает с идентификатором второго документа из второго документа, то последовательность выполнения выбирает вариант «Нет» и последовательность выполнения переходит к этапу 914. На этапе 914 осуществляется традиционное объединение документов.
Затем традиционное объединение документов завершается на этапе 914. Последовательность выполнения переходит к этапу 916. На этапе 916 идентификатор документа присваивается объединенному документу. Идентификатор документа является уникальным и устойчивым. Идентификатор документа сохраняется на протяжении времени существования объединенного документа.
Последовательность выполнения переходит к этапу 918. На этапе 918 каждому элементу данных в объединенном документе присваивается уникальный элементный идентификатор, который сохраняется на протяжении времени существования элемента данных. Элементный идентификатор идентифицирует и позволяет отличать связанный с ним элемент данных от любых других элементов данных в объединенном документе.
Последовательность выполнения переходит к этапу 920. На этапе 920 элементные идентификаторы сохраняются в объединенном документе. В одном возможном варианте осуществления элементные идентификаторы сохраняются в метаданных в документе. В другом возможном варианте осуществления элементные идентификаторы сохраняются в файле метаданных, который отделен от объединенного документа.
Последовательность выполнения переходит к этапу 922. На этапе 922 редакционный идентификатор присваивается каждому из элементов данных. Редакционный идентификатор указывает, что элемент данных вновь создан или отредактирован. Редакционный идентификатор отделен от элементного идентификатора.
Последовательность выполнения переходит к этапу 924. На этапе 924 редакционные идентификаторы сохраняются в объединенном документе. В одном возможном варианте осуществления редакционные идентификаторы сохраняются в метаданных в объединенном документе. В другом возможном варианте осуществления редакционные идентификаторы сохраняются в файле метаданных, который отделен от объединенного документа. В еще одном возможном варианте осуществления редакционные идентификаторы сохраняются, когда пользователь сохраняет документ. Кроме того, редакционный идентификатор можно присваивать как случайный идентификатор.
После выполнения этапов 916-924 объединенный документ преобразуется в документ, который можно подвергать ускоренному объединению при последующем редактировании и/или дублированию объединенного документа. Например, если объединенный документ преобразуется в четвертый документ одним пользователем и в пятый документ другим пользователем, четвертый документ и пятый документ можно объединять вышеописанным способом ускоренного объединения.
Пример, показанный на фиг.9, иллюстрирует способ объединения двух документов с образованием объединенного третьего документа. Однако он не ограничивается объединением только двух документов. Напротив, проиллюстрированные здесь идеи и принципы можно применять к объединению более чем двух документов.
Хотя изобретение было описано применительно к структурным особенностям и/или этапам способа, следует понимать, что объем изобретения, заданный в прилагаемой формуле изобретения, не обязан ограничиваться конкретными признаками или этапами, описанными выше. Напротив, вышеописанные конкретные признаки или этапы раскрыты как иллюстративные формы реализации формулы изобретения.
Класс G06F17/24 редактирование, например, вставка/удаление