Обработка электронных чернил

Иллюстрации

Показать все

Изобретение относится к обработке электронных чернил. Техническим результатом является расширение функциональных возможностей способа. Способ согласования первой структуры данных со второй структурой данных состоит в следующем: для каждого узла второй структуры данных определяют, принял ли этот узел изменение от соответствующего узла в первой структуре данных; для каждого узла во второй структуре данных, для которого определено, что он принял изменение от соответствующего узла в первой структуре данных, осуществляют попытку доступа к этому узлу в первой структуре данных; если упомянутый узел в первой структуре данных является недостижимым, предотвращают реализацию упомянутого изменения во второй структуре данных; если достижимым - определяют, когда упомянутое изменение в отношении второй структуры данных создает дискреционную коллизию, а когда - обязательную коллизию; если изменение создает дискреционную коллизию, определяют, запрещена ли она критериями коллизии; если дискреционная коллизия не запрещена, выполняют упомянутое изменение; если запрещена - предотвращают реализацию упомянутого изменения, причем упомянутые критерии коллизии запрещают удаление штрихов чернил из концевого узла под закрепленным узлом. 2 н. и 10 з.п. ф-лы, 49 ил.

Реферат

Область техники, к которой относится изобретение

Настоящее изобретение относится к обработке электронных чернил. Различные аспекты настоящего изобретения, в частности, применимы к анализу электронных чернил, включая анализ компоновки, классификацию и распознавание электронных чернил. Дополнительные аспекты изобретения относятся к использованию проанализированных по компоновке, классифицированных и распознанных электронных чернил, например, при создании гибких аннотаций с широкими возможностями в документе, выполненном электронными чернилами.

Предшествующий уровень техники

Так как в обществе распространилась роль компьютеров, то были разработаны всевозможные различные методики для ввода данных в компьютеры. Одной особенно применимой методикой представления данных является использование рукописного текста. В результате ввода пером или другим предметом на цифровом преобразователе для получения «электронных чернил» пользователь компьютера может отказаться от громоздких и неудобных клавиатур. Рукописный ввод может удобно использоваться, например, врачами, выполняющими обход, архитекторами на стройплощадке, курьерами, доставляющими посылки, рабочими складов, обходящими склад, и во многих ситуациях, когда использование клавиатуры было бы затруднительным или неудобным. Хотя рукописный ввод более удобен, чем ввод с клавиатуры во многих ситуациях, текст, записанный электронными чернилами, обычно не может быть непосредственно обработан большинством программных приложений. Вместо этого текст, записанный электронными чернилами, должен быть проанализирован для преобразования его в другую форму, такую как знаки Американского стандартного кода обмена информацией (ASCII). Данный анализ включает в себя процесс распознавания рукописного текста, при котором распознают знаки, основываясь на различных зависимостях между отдельными штрихами электронных чернил, составляющими слово электронных чернил.

Алгоритмы распознавания рукописного текста в значительной степени улучшились в последние годы, но их точность может снижаться, когда электронные чернила записываются под углом. Аналогично, когда нельзя легко различить отдельные группы штрихов чернил, например, когда два слова написаны вплотную друг к другу, то многие алгоритмы распознавания не могут точно распознавать электронные чернила. Некоторые алгоритмы распознавания также могут неправильно распознавать электронные чернила в качестве текста, когда, фактически, электронные чернила, как предполагается, являются рисунком. Например, пользователь может аннотировать машинописный текст посредством написания штриха электронных чернил, который подчеркивает, выделяет, окружает или перечеркивает некоторую часть машинописного текста. Алгоритм распознавания рукописного текста может тогда неправильно распознавать данные штрихи аннотаций как тире, число нуль или букву «О».

Точность многих алгоритмов распознавания может быть в значительной степени повышена посредством «синтаксического разбора» (например, посредством анализа компоновки и/или «классификации») электронных чернил перед использованием алгоритма распознавания рукописного текста. Процесс классификации обычно определяет, является ли штрих электронных чернил частью рисунка (т.е. штрихом чернил рисунка) или частью рукописного текста (т.е. штрихом чернил текста). Также возможны алгоритмы классификации для идентификации других типов штрихов. Процесс анализа компоновки обычно группирует штрихи электронных чернил в значимые ассоциации, такие как слова, строки и абзацы. Процессы анализа компоновки и классификации могут быть использованы, таким образом, для идентификации того, какие штрихи в коллекции электронных чернил принадлежат одному слову, какие слова электронных чернил ассоциированы с одной строкой текста, записанного электронными чернилами, и какие строки текста, записанного электронными чернилами, ассоциированы с абзацем.

Хотя анализ компоновки и классификация могут в значительной степени улучшить распознавание электронных чернил, многие разработчики программных приложений не осознают важность данных действий перед распознаванием электронных чернил. До последнего времени алгоритмы анализа компоновки и классификации не были легкодоступными для использования с существующими программными приложениями. Например, операционная система Microsoft® Windows XP Tablet PC Edition Version 2002 обычно продавалась с программным приложением Microsoft® Windows Journal для хранения, отображения и управления электронными чернилами. Хотя программное приложение Microsoft® Windows Journal использует внутреннюю программу синтаксического разбора, до последнего времени данная программа синтаксического разбора не была доступна для других программных приложений, работающих под операционной системой.

Хотя процесс синтаксического разбора из программного приложения Windows Journal теперь отдельно доступен для других программных приложений, использование данной программы синтаксического разбора не является общеизвестным, и данная программа синтаксического разбора не может быть легко использована со многими программными приложениями, в которые пользователь может захотеть ввести рукописный текст. Кроме того, даже если разработчик программного приложения должен был создавать программу синтаксического разбора специально для использования с требуемым программным приложением (что само по себе может представлять собой трудный и трудоемкий процесс), выполнение процесса синтаксического разбора может быть совершенно трудоемким. Например, синтаксический разбор только нескольких штрихов электронных чернил, использующих относительно быстродействующий микропроцессор, может занимать у программы синтаксического разбора несколько секунд или даже нескольких минут. Если программное приложение должно останавливать свою работу до тех пор, пока не будет завершен процесс синтаксического разбора, то программное приложение становится слишком медленным для практического использования большинством пользователей.

Следовательно, существует потребность в методиках обработки электронных чернил, которые могут быть использованы различными программными приложениями, например, для анализа компоновки, классификации и/или распознавания электронных чернил. Далее, существует потребность в методиках обработки электронных чернил, которые могут обрабатывать электронные чернила, в то же самое время все же позволяя программному приложению применять методики для принятия нового ввода электронных чернил без признания недействительными результатов обработки чернил.

Краткое изложение сущности изобретения

Преимущественно различные примеры изобретения обеспечивают методики обработки электронных чернил, которые могут быть использованы различными программными приложениями для обработки электронных чернил. Далее, эти методики обработки электронных чернил позволяют производить обработку электронных чернил асинхронно относительно работы программного приложения, реализующего методики, так что электронные чернила могут быть обработаны без останова или существенной задержки работы программного приложения. Программное приложение даже может продолжать принимать новый ввод электронных чернил, в то время как обрабатывается предыдущий ввод электронных чернил.

В соответствии с различными примерами изобретения элементы в файле или документе могут быть описаны, основываясь на их пространственном положении относительно друг друга. Например, как штрих электронных чернил, так и машинописный текст могут быть описаны на основе одной системы пространственных координат. Используя пространственную информацию для описания элементов документа, программное приложение, управляющее документом, может поддерживать структуру данных, описывающую зависимость между ее элементами документа. В частности, программное приложение может поддерживать структуру данных, как описывающую класс различных элементов документа, так и определяющую ассоциации между различными элементами документа. Эти ассоциации могут быть определены, например, как информация, используемая для связи данных штрихов электронных чернил или их коллекций с другими элементами в электронном документе (такими как слова, строки, абзацы, рисунки, ячейки таблицы и т.д.).

Посредством описания элементов документа в структуре данных файла или документа, основываясь на их пространственном положении, элементы документа для различных типов файлов могут использовать общие методики идентификации и управления своими элементами документа. Более конкретно, различные программные приложения могут описывать элементы документа в документе, основываясь на их пространственном положении, и применять данное пространственное положение, ссылаясь на использование общих способов анализа электронных чернил. Далее, посредством задания конкретной области документа для анализа каждое программное приложение может ограничить процесс анализа только требуемыми элементами в документе.

Для анализа нового ввода электронных чернил в документ в соответствии с различными примерами изобретения программное приложение, управляющее документом, модифицирует структуру данных, ассоциированную с документом, с целью включения новых чернил для анализа. Программное приложение затем подает эту структуру данных (или ее соответствующие части) на инструментальное средство анализа чернил, которое копирует некоторую часть или всю структуру данных для анализа (и работает над этой копией данных, которая является независимой от структуры данных документа программы приложения). Инструментальное средство анализа чернил передает копию процессу анализа, такому как процесс синтаксического разбора (например, процесс анализа компоновки и/или процесс классификации). Программное приложение может возобновить свою нормальную работу, включая прием нового ввода электронных чернил и/или других данных, в то время как выполняется процесс(ы) анализа чернил. В дополнение к приему новых электронных чернил программой приложения могут приниматься любые «другие данные», например данные, модифицирующие размер, размещение или содержимое существующих чернил, текста, изображений, графиков, таблиц, блок-схем, диаграмм и т.п.; данные, добавляющие дополнительный текст, изображения, графики, таблицы, блок-схемы, диаграммы и т.п.; данные, удаляющие существующий текст, изображения, графики, таблицы, блок-схемы, диаграммы и т.п. После завершения всех требуемых процессов анализа результаты анализа возвращаются инструментальному средству анализа чернил.

Таким образом, различные примеры систем и способов в соответствии с изобретением позволяют выполнять процессы анализа чернил асинхронно с работой программного приложения, использующего процесс анализа чернил. Данная асинхронная работа позволяет пользователю продолжать использовать программное приложение без задержки, вызываемой процессом анализа. Далее, это позволяет одновременно выполнять многочисленные процессы анализа.

В ответ на прием результатов анализа инструментальное средство анализа чернил получает текущую версию структуры данных электронного документа (которая может содержать новые и/или модифицированные данные, введенные во время выполнения процессов анализа) от программного приложения и согласовывает результаты анализа с текущей версией структуры данных. Посредством согласования результатов анализа с текущей версией структуры данных различные примеры изобретения могут исключить более сложные методики, такие как «блокировка», для асинхронного доступа к данным, используемым программным приложением. Вместо этого согласование может быть вызвано любым программным приложением без необходимости в сложной внутренней блокировке.

После согласования результатов анализа с текущей версией структуры данных инструментальное средство анализа чернил затем может предоставить копию согласованных результатов анализа другому процессу анализа, такому как процесс распознавания рукописного текста. Опять же, программное приложение может возобновить свою нормальную работу, включая прием нового ввода электронных чернил и/или других данных, в то время как выполняется процесс(ы) второго анализа чернил. После того как будут завершены все требуемые процессы второго анализа, результаты процесса второго анализа возвращаются инструментальному средству анализа чернил. Инструментальное средство анализа чернил затем получает текущую версию структуры данных от программного приложения (которое снова может включать в себя новые и/или модифицированные данные) и согласовывает результаты второго анализа с текущей версией структуры данных. Инструментальное средство анализа чернил затем обновляет структуру данных, используя согласованные результаты процесса второго анализа. Конечно, может быть использовано любое количество процедур и/или этапов анализа чернил без отступления от изобретения.

Использование различных процессов анализа чернил, описанных выше, и пространственной информации, задающей соответствие или связывающей данные электронных чернил с другими признаками электронного документа, также может быть использовано для создания ценных, гибких и естественных аннотаций посредством чернил в электронном документе. Например, аспекты изобретения могут быть использованы для создания аннотаций посредством электронных чернил, которые динамически перемещаются и/или иным образом изменяются, основываясь на изменениях, выполненных в нижележащих аннотируемых элементах документа. Пользователи обычно аннотируют документы многими различными путями, например, они могут обводить, подчеркивать, выделять или зачеркивать слова; записывать примечания на полях; рисовать стрелки или другие указатели к аннотациям, расположенным на полях, и т.д. Кроме того, пользователи делают аннотации на документах разнообразных отличающихся видов, включая, например, текст, электронные таблицы, рисунки, слайдовые презентации, таблицы, диаграммы, графики, блок-схемы и т.д.

Гладкое встраивание аннотаций электронных чернил в электронный документ требует того, чтобы аннотации изменялись соответствующим образом, когда по какой-либо причине изменяется базовый электронный документ. Например, если пользователь обводит слово в электронном документе (в качестве аннотации) и затем добавляет текст где-то в документе перед данным словом, то это может вызвать перемещение обведенного слова. В данном случае аннотация в виде обведения должна перемещаться и оставаться со словом. В качестве другого примера, если пользователь добавляет или удаляет знаки из обведенного слова или иным образом изменяет его размер любым образом, аннотация в виде обведения должна вытягиваться или сжиматься для адаптации к новому размеру слова. Предпочтительно, когда по любой причине происходит переформатирование текста нижележащего электронного документа и/или обновление положений его составляющих элементов (абзацев, рисунков, колонок и т.д.) относительно друг друга и/или страницы, то аннотации, выполненные посредством электронных чернил, также перемещаются и остаются правильно расположенными относительно базового текста или другой информации. Если аннотации не будут изменяться таким образом относительно текста базового электронного документа, то становится нецелесообразным редактирование или совместное использование активных электронных документов после аннотирования, и распечатка на бумаге будет все же самым простым и наиболее применимым методом аннотирования.

Определение того, как изменить соответствующим образом аннотацию, будет зависеть от различных факторов, относящихся к аннотации и электронному документу. Например, соответствующее изменение аннотации в случае переформатирования текста может зависеть, например, от возможностей вычислительной системы (например, средства синтаксического разбора) в отношении: (а) идентификации электронных чернил в качестве аннотации; (b) идентификации типа аннотации, выполненной посредством электронных чернил; и (с) идентификации зависимости электронных чернил от конкретного элемента в базовом электронном документе. Хотя можно запросить у пользователя некоторую или всю информацию данного типа, такие системы потребовали бы от пользователя значительно более обременительные действия, чем аннотирование на бумаге. Следовательно, в соответствии с различными аспектами изобретения вышеупомянутая информация может быть получена из: (1) самих электронных чернил и (2) содержимого базового документа, включая пространственное положение различных элементов в документе относительно электронных чернил.

Так как определение значения аннотаций, выполненных посредством чернил, может быть сложным и трудным, то крайне нецелесообразно ожидать, что каждая программа приложения, документ которой пользователь может захотеть аннотировать, будет индивидуальным образом реализовывать логику идентификации аннотации. Скорее, было бы предпочтительным создать многократно используемый компонент, обеспечивающий данную функцию аннотирования, который легко может быть интегрирован в любую программу приложения. Например, поскольку операционная система вычислительной системы на основе перьевого ввода обеспечивает компоненты для сбора и воспроизведения электронных чернил, было бы предпочтительным, чтобы эта операционная система могла обеспечить компонент, который определяет значение аннотаций, выполненных посредством чернил (также называемый «средством синтаксического разбора аннотаций»), который достаточно эффективно будет работать с рассматриваемыми чернилами.

Идентификация содержимого базового электронного документа, однако, ставит существенные трудности при обеспечении возможностей «интеллектуальной» аннотации. Например, всевозможные различные программы приложений имеют в значительной степени несопоставимые способы хранения, управления и переформатирования документов. Настоящее изобретение обеспечивает многократно используемое средство синтаксического разбора аннотаций, способное определять зависимость возможных аннотаций, выполненных посредством чернил, от всевозможных различных типов электронных документов. Более конкретно, в соответствии с некоторыми аспектами настоящего изобретения обеспечивается механизм со средством синтаксического разбора аннотаций, который выполняет обратный вызов к программе приложения для получения соответствующей информации, относящейся к чернилам, подвергаемым синтаксическому разбору, (например, информации, относящейся к электронному документу в пространственной области, соответствующей аннотации чернил, для получения «контекста» к аннотации чернил). Этот механизм достаточно прост для его практического интегрирования в любое основанное на документе приложение, и он достаточно эффективен для работы с очень большими документами (которые могут обрабатываться частями, такими как страницы и т.п.).

Методики обработки чернил в соответствии с различными примерами изобретения, таким образом, позволяют различным программным приложениям выполнять многочисленные процессы над электронными чернилами при помощи инструментального средства анализа чернил. Кроме того, программное приложение, использующее приведенные методики, может продолжать свою нормальную работу во время процесса анализа, включая прием нового ввода электронных чернил, без необходимости признания недействительными результатов процессов анализа.

Перечень фигур чертежей

Вышеупомянутые и другие задачи, признаки и преимущества настоящего изобретения очевидны и полностью понятны из последующего подробного описания, рассматриваемого совместно с прилагаемыми чертежами, на которых:

фиг.1 - схематическое представление цифровой вычислительной среды общего назначения, в которой могут быть реализованы некоторые аспекты настоящего изобретения;

фиг.2 - среда персонального компьютера (ПК) с перьевым вводом, в которой могут быть реализованы некоторые аспекты настоящего изобретения;

фиг.3 и 4 - разнообразные признаки примерных реализаций аспектов изобретения, относящихся к аннотированию электронных документов;

фиг.5 - общие признаки синтаксического разбора чернил электронного документа;

фиг.6А-6I - примерные структуры данных, применимые при осуществлении по меньшей мере некоторых аспектов настоящего изобретения;

фиг.7А-12В - примерные электронные документы и связанные с ними примерные структуры данных, применимые при обработке выполненных посредством электронных чернил аннотаций электронных документов;

фиг.13А-14В - примерные электронные документы и связанные с ними примерные структуры данных, применимые при обработке признаков электронных блок-схем в электронных документах;

фиг.15А-15С - примерные электронные документы и связанные с ними примерные структуры данных, применимые при обработке признаков электронных таблиц в электронных документах;

фиг.16А-16D - способ обработки электронных чернил в соответствии с различными примерами изобретения;

фиг.17, 19-21 и 23-26 - иллюстрации переноса объектов данных во время примерных процессов анализа чернил в соответствии с различными примерами изобретения;

фиг.18 и 22 - простые деревья данных, которыми можно манипулировать в соответствии с различными примерами изобретения;

фиг.27 - схема последовательности операций, изображающая способ согласования результатов анализа с текущим состоянием документа; и

фиг.28 - средство асинхронного анализа электронных чернил в соответствии с другими примерами изобретения.

Подробное описание чертежей

Термины

В настоящем описании изобретения используются следующие термины, и, если не указано иначе или явно не следует из контекста, термины имеют значение, приведенное ниже.

«Воспроизводить», или «воспроизведенный», или «воспроизведение» - процесс определения того, каким образом информация (включая текст, графики и/или электронные чернила) должна отображаться, например, на экране, печататься или выводиться некоторым другим образом.

«Машиночитаемый компьютером носитель» - любой доступный носитель, к которому пользователь на компьютерной системе может осуществить доступ. В качестве примера, а не ограничения, «машиночитаемый носитель» может включать в себя носитель данных компьютера и среду передачи данных. «Носитель данных компьютера» включает в себя энергозависимые и энергонезависимые, съемные и несъемные носители, выполненные любым способом или по любой технологии для хранения информации, такой как машиночитаемые компьютером инструкции, структуры данных, программные модули или другие данные. «Носитель данных компьютера» включает в себя, но не в ограничительном смысле, оперативное запоминающее устройство (ОЗУ, RAM), постоянное запоминающее устройство (ПЗУ, ROM), электрически стираемое программируемое ПЗУ (EEPROM), флэш-память или память другой технологии; компакт диск, цифровой многофункциональный диск (DVD) или другие оптические запоминающие устройства; магнитные кассеты, магнитную ленту, запоминающее устройство на магнитных дисках или другие магнитные запоминающие устройства; или любой другой носитель, который может быть использован для хранения требуемой информации и к которому компьютер может осуществить доступ. «Среда передачи данных» обычно воплощает машиночитаемые инструкции, структуры данных, программные модули или другие данные в модулированном данными сигнале, таком как несущая волна или другой транспортный механизм, и включает в себя любую среду доставки информации. Термин «модулированный данными сигнал» означает сигнал, одна или несколько характеристик которого установлены или изменены так, что обеспечивается кодирование кодируемой информации в этом сигнале. В качестве примера, а не ограничения, среда передачи данных включает в себя проводные среды, такие как проводную сеть или непосредственное проводное соединение, и беспроводные среды, такие как акустические, радиочастотные, инфракрасные и другие беспроводные среды. Комбинации любых из вышеперечисленных носителей данных и сред передачи также охватываются понятием «машиночитаемый носитель».

Обзор

В соответствии с различными примерами изобретения свойства элемента в документе (или файле другого типа) могут включать в себя информацию, относящуюся к пространственному положению данного элемента в документе. Таким образом, как штрих электронных чернил, так и машинописный текст могут быть описаны на основе одной системы пространственных координат для документа и/или на основе пространственной взаимосвязи или другой взаимосвязи с другими элементами в документе. Кроме того, связанные элементы в документе могут быть идентифицированы просто посредством идентификации пространственной области документа, содержащей эти элементы, и/или посредством связывания этих элементов.

Используя упомянутую пространственную взаимосвязь между различными элементами документа, программное приложение может создавать и поддерживать структуру данных, которая описывает другие взаимосвязи между элементами документа. Например, программное приложение может поддерживать структуру данных, такую как дерево данных, которая определяет класс для различных элементов в документе. Таким образом, узел в структуре данных может соответствовать рукописному слову или рисунку, содержащему один или несколько штрихов чернил, и данные, хранимые в узле, могут дополнительно означать положение данного слова на странице. Любые другие подходящие или стандартные обычно хранимые данные, относящиеся к штриху чернил и/или слову электронных чернил, также могут хранится в узле слова.

Структура данных этого типа также может ассоциативно связывать элементы документа (такие как отдельные штрихи чернил или знаки машинописного текста) в значимые группы, такие как слова, строки слов, предложения, абзацы и т.п. Таким образом, если программное приложение поддерживает древовидную структуру документа, которая описывает абзац рукописных электронных чернил, концевые узлы структуры данных могут включать в себя данные, относящиеся к отдельным штрихам электронных чернил, и один или несколько штрихов могут быть ассоциативно связаны вместе в структуру данных в качестве узлов слова, соответствующих словам в абзаце (например, словам, определенным средством синтаксического разбора и/или средством распознавания). Древовидная структура затем может ассоциативно связывать узлы слова с узлами строки, соответствующими строкам в абзаце. Каждый узел строки дополнительно может быть ассоциативно связан с узлом, соответствующим абзацу. Далее, программное приложение может поддерживать дерево или другую структуру данных, которая ассоциативно связывает узел, соответствующий штриху электронных чернил и/или некоторой другой группировке электронных чернил, с другим узлом, соответствующим нечернильному элементу документа, такому как изображение; чернильный рисунок; машинописный знак, слово, строка, абзац или т.п. Приведенные структуры данных, таким образом, могут быть использованы для определения зависимостей между ассоциированными штрихами электронных чернил, чтобы отличать штрихи электронных чернил, образующих рукописный текст, от штрихов электронных чернил, аннотирующих нечернильные элементы документа, и/или связывать штрихи электронных чернил с другими элементами документа.

Как подробно описано ниже, эти структуры данных могут быть использованы с инструментальным средством анализа чернил в соответствии с различными примерами изобретения для анализа электронных чернил в документе. В соответствии с различными примерами изобретения программное приложение может провести анализ электронных чернил в документе посредством создания сначала структуры данных для документа. Эта структура данных описывает взаимосвязь между элементами документа, которые уже были проанализированы (если они есть), и, таким образом, обеспечивает контекст, в котором будут анализироваться любые новые электронные чернила. Упомянутая структура данных или «объект контекста анализа» также включает в себя любые новые электронные чернила, которые не были проанализированы. Т.е. объект контекста анализа также включает в себя электронные чернила, для которых еще не была установлена взаимосвязь с другими элементами документа. Для некоторых примеров изобретения программное приложение создает свой собственный объект контекста анализа. В соответствии с другими примерами изобретения, однако, программное приложение использует инструментальное средство анализа чернил или другое инструментальное средство для создания объекта контекста анализа.

После того как программное приложение предоставило объект контекста анализа инструментальному средству анализа чернил (или инструментальное средство анализа чернил создало объект контекста анализа), инструментальное средство анализа чернил делает копию или извлекает информацию, относящуюся по меньшей мере к части объекта контекста анализа, содержащего непроанализированные электронные чернила. Посредством выполнения копии или приема информации, относящейся к требуемой части объекта контекста анализа, инструментальное средство анализа чернил создает структуру данных, которая, впоследствии, может быть проанализирована без изменения объекта контекста анализа, поддерживаемого программным приложением. Т.е. копия не зависит от фактического электронного документа, используемого в программном приложении, и, таким образом, может упоминаться ниже как «независимый от документа» объект контекста анализа.

Как только инструментальное средство анализа чернил создает независимый от документа объект контекста анализа, инструментальное средство анализа чернил предоставляет данный независимый от документа объект контекста анализа одному или нескольким процессам анализа. Например, если распознавание рукописного текста должно выполняться в отношении непроанализированных электронных чернил в документе, то тогда инструментальное средство анализа чернил может предоставить независимый от документа объект контекста анализа процессам классификации и/или анализа компоновки для классификации чернил на штрихи текста и рисунка (если необходимо или если требуется) и затем группирования штрихов текста непроанализированных электронных чернил в ассоциированные группировки на основе компоновки чернил. В то время как процессы классификации и/или анализа компоновки анализируют независимый от документа объект контекста анализа, программное приложение может продолжать свою обычную работу. В частности, программное приложение может продолжать принимать новый ввод электронных чернил и/или любые другие данные в электронном документе, выполняемом программой приложения.

Когда процесс анализа, такой как процесс синтаксического разбора, завершает свой анализ независимого от документа объекта контекста анализа, он возвращает результаты анализа инструментальному средству анализа чернил. Более конкретно, процесс синтаксического разбора (который может включать в себя, в частности, процессы классификации и анализа компоновки, как описано выше) возвратит модифицированную версию независимого от документа объекта контекста анализа, изображающего новые взаимосвязи для ранее непроанализированных электронных чернил. Хотя программное приложение может свободно принимать новый ввод электронных чернил и/или любые другие данные для документа во время вышеописанной операции синтаксического разбора, однако, текущая версия объекта контекста анализа для документа (т.е. версия, поддерживаемая приложением) может отличаться как от независимого от документа объекта контекста анализа, первоначально предоставленного инструментальному средству анализа чернил, так и от результатов синтаксического разбора, предоставленных процессом синтаксического разбора.

Следовательно, в соответствии с некоторыми примерами изобретения инструментальное средство анализа чернил может получать текущую версию объекта контекста анализа от программного приложения и согласовывать результаты синтаксического разбора с текущей версией объекта контекста анализа. Во время данного процесса согласования инструментальное средство анализа чернил обновляет текущую версию объекта контекста анализа для отражения результатов процесса синтаксического разбора. Инструментальное средство анализа чернил затем передает согласованные данные от текущего объекта контекста анализа процессу распознавания рукописного текста для распознавания. В соответствии с другими примерами изобретения, однако, инструментальное средство анализа чернил может пропустить процесс согласования и, вместо этого, передать результаты синтаксического разбора непосредственно процессу распознавания рукописного текста.

Как только результаты синтаксического разбора согласованы с текущей версией объекта контекста анализа, программное приложение может снова возвратиться к своей обычной работе, и, таким образом, оно может продолжать принимать новый ввод электронных чернил и/или любые другие данные, относящиеся к документу. Тем временем процесс распознавания анализирует согласованные данные от текущего объекта контекста анализа (или, альтернативно, результаты синтаксического разбора). После того как процесс распознавания завершит свой анализ согласованных данных (или результатов синтаксического разбора), он возвращает свои результаты распознавания инструментальному средству анализа чернил. Опять же, так как программное приложение, может быть, приняло новый ввод электронных чернил и/или любые другие данные для документа во время работы процесса распознавания, инструментальное средство анализа чернил получает текущую версию объекта контекста анализа от программного приложения. Инструментальное средство анализа чернил затем согласовывает результаты процесса распознавания с текущей версией объекта контекста анализа для обновления текущей версии объекта контекста анализа результатами распознавания.

Примерное операционное окружение

На фиг.1 изображено схематическое представление цифровой вычислительной среды общего назначения, которая может быть использована для реализации различных аспектов настоящего изобретения. На фиг.1 компьютер 100 включает в себя блок 110 обработки данных, системную память 120 и системную шину 130, которая соединяет различные компоненты системы, включая системную память 120, с блоком 110 обработки данных. Системная шина 130 может быть любой из шинных структур нескольких видов, включая шину памяти или контроллер памяти, периферийную шину и локальную шину, используя любую из разнообразных шинных архитектур. Системная память 120 может включать в себя постоянное запоминающее устройство (ПЗУ) 140 и оперативное запоминающее устройство (ОЗУ) 150.

Базовая система 160 ввода-вывода (BIOS), содержащая базовые процедуры, которые способствуют передаче информации между элементами в компьютере 100, например, во время запуска, хранится в ПЗУ 140. Компьютер 100 также может включать в себя накопитель 170 на жестких магнитных дисках для считывания и записи на жесткий диск (не показан), дисковод 180 для магнитного диска для считывания или записи на съемный магнитный диск 190 и дисковод 191 для оптического диска для считывания или записи на съемный оптический диск 192, такой как компакт-диск или другие оптические носители. Накопитель 170 на жестких магнитных дисках, дисковод 180 для магнитного диска и дисковод 191 для оптического диска подсоединены к системной шине 130 посредством интерфейса 192 накопителя на жестких магнитных дисках, интерфейса 193 дисковода для магнитного диска и интерфейса 194 дисковода для оптического диска соответственно. Данные дисководы и накопители и связанные с ними машиночитаемые носители обеспечивают энергонезависимое хранение машиночитаемых инструкций, структур данных, программных модулей и других данных для персонального компьютера 100. Для