Разделитель чернил и интерфейс соответствующей прикладной программы

Иллюстрации

Показать все

Изобретение относится к способам связи между прикладной программой и электронными чернилами. Изобретение позволяет упростить и повысить гибкость взаимодействия прикладных программ с множеством различных группировок чернил. Способы для поддержания связи между приложением и объектом разделения чернил (который хранит чернильные штрихи, которые будут разделены на группы), могут включать в себя этапы: (а) выдают запрос на разделение к объекту разделения чернил, возможно, с помощью приложения; (b) в ответ на запрос на разделение вызывают метод разделения, который группирует сохраненные чернильные штрихи в одну или более группировок штрихов, имеющих первую заранее определенную степень детализации (например, слова, строки, абзацы, предложения, рисунки и т.д.); и (с) делают информацию, относящуюся к одной или большему количеству группировок штрихов, доступной приложению. Эта «информация», которая сделана доступной приложению, может включать в себя, например, существующие группировки штрихов, количество группировок штрихов, имеющих первую заранее определенную степень детализации, машинно-сгенерированный текст, соответствующий группировкам штрихов, или подобную информацию. 6 н. и 49 з.п. ф-лы, 12 ил.

Реферат

Связанные заявки

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

(a) заявка на патент США № 10/143 865, поданная 14 мая 2002, озаглавленная «Handwriting Layout Analysis of Freeform Digital Ink Input»;

(b) заявка на патент США № 10/143 864, поданная 14 мая 2002, озаглавленная «Classification Analysis of Freeform Digital Ink Input»;

(c) заявка на патент США № 10/143 804, поданная 14 мая 2002, озаглавленная «Classification Analysis of Freeform Digital Ink Input»; и

(d) заявка на патент США № 10/184 108, поданная 28 июня 2002, озаглавленная «Interfacing With Ink»

Каждая из этих ожидающих решения заявок на патент США полностью представлена для справки.

ОБЛАСТЬ ТЕХНИКИ

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

ПРЕДШЕСТВУЮЩИЙ УРОВЕНЬ ТЕХНИКИ

Типичные компьютерные системы, особенно компьютерные системы, использующие системы с графическим пользовательским интерфейсом (ГПИ, GUI), такие как Microsoft WINDOWS, оптимизированы для приема вводимой пользователем информации от одного или более дискретных устройств ввода данных, таких как клавиатура для ввода текста и устройство указания (например, мышь с одной или более кнопками) для управления интерфейсом пользователя. Повсеместно распространенный интерфейс клавиатуры и мыши обеспечивает быстрое создание и модификацию документов, электронных таблиц, полей баз данных, рисунков, фотографий и т.п. Однако, в некотором отношении, существует существенный недостаток в гибкости, которую обеспечивает интерфейс клавиатуры и мыши по сравнению с некомпьютерными (т.е. обычными) ручкой и бумагой. С помощью обычных ручки и бумаги пользователь может редактировать документ, записывать примечания на полях и рисовать изображения и другие фигуры и т.п. В некоторых случаях пользователь может предпочесть использовать ручку для пометок на документе, а не просматривать документ на компьютерном экране, из-за возможности свободно делать примечания вне ограничений интерфейса мыши и клавиатуры.

Некоторые компьютерные системы разрешают пользователям рисовать на экране. Например, приложение Microsoft READER позволяет пользователям добавлять электронные чернила (краску) (которые также упоминаются как «чернила» или «цифровые чернила») к документу. Система хранит эти чернила и обеспечивает их передачу пользователю, когда требуется. Другие приложения (например, приложения для рисования, такие как известные из предшествующего уровня техники, связанные с операционными системами Palm 3.x и 4.x и PocketPC) разрешают ввод и хранение рисунков. Также, различные приложения для рисования, такие как Corel Draw, и приложения для обработки и редактирования фотографий, такие как Photoshop, могут использоваться с изделиями для ввода информации с помощью пера, такими как планшетные изделия компании Wacom. Такие рисунки включают в себя другие свойства, связанные с чернильными штрихами, используемыми для создания рисунков. Например, ширина и цвет линии могут сохраняться вместе с чернилами. Одной из целей таких систем является воспроизведение (копирование) внешнего вида и восприятия физических чернил, которые наносят на лист бумаги.

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

СУЩНОСТЬ ИЗОБРЕТЕНИЯ

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

Аспекты настоящего изобретения относятся к системам и способам для обеспечения доступности информации для прикладной программы. Эти системы и способы могут включать в себя этапы: сохраняют множество чернильных штрихов; выдают или принимают запрос на разделение; в ответ на запрос на разделение выполняют группирование сохраненных чернильных штрихов в одну или более группировок штрихов, имеющих по меньшей мере первую заранее определенную степень детализации; и обеспечивают доступность прикладной программе информации, относящейся к одной или большему количеству группировок штрихов. Данная «информация», которая доступна прикладной программе, может включать в себя, например, по меньшей мере одну из одной или большего количества группировок штрихов; информацию, указывающую множество группировок штрихов, имеющих первую заранее определенную степень детализации; и сгенерированный машиной текст, который соответствует по меньшей мере одной из одной или большего количества группировок штрихов. Штрихи могут группироваться в различные группы с отличающейся степенью детализации, содержащие слова, строки, абзацы, предложения, рисунки и т.д. В процессе группирования также можно группировать штрихи в группировки больше чем одной отличающейся степени детализации, и он может повторяться после того, как набор чернильных штрихов изменяется, например, с помощью добавления, удаления, перемещения, изменения размеров или другого изменения одного или более штрихов. Код прикладной программы также может обеспечивать передачу анализатору информации о различных типах анализа во время работы описанных выше способов, например установки модуля распознавания, который будет использовать во время анализа, установки языка, который будет использоваться во время анализа, установки требуемой степени детализации, с которой штрихи будут анализироваться, установки ожидаемой высоты строки для строк текста, которые включают в себя чернильные штрихи, и т.п.

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

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

КРАТКОЕ ОПИСАНИЕ ЧЕРТЕЖЕЙ

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

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

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

Фиг.3 показывает общий обзор примера системы и/или способа анализа, который может использоваться вместе с примерами данного изобретения.

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

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

Фиг.6A и 6B иллюстрируют примеры структур данных дерева анализа, которые могут быть получены, например, используя средство анализа размещения, которое выполняет этапы, показанные на фиг.5.

Фиг.7 показывает компоненты и особенности объекта InkDivider (разделения чернил), используемого в некоторых примерах настоящего изобретения.

Фиг.8 иллюстрирует компоненты и особенности объекта InkDivisionResult (результат разделения чернил), используемого в некоторых примерах настоящего изобретения.

Фиг.9 иллюстрирует компоненты и особенности объекта InkDivisionUnits (модули разделения чернил), используемого в некоторых примерах настоящего изобретения.

Фиг.10 иллюстрирует компоненты и особенности объекта InkDivisionUnit (модуль разделения чернил), используемого в некоторых примерах настоящего изобретения.

Фиг.11 иллюстрирует другой пример объекта InkDivider, используемого в некоторых примерах настоящего изобретения.

ПОДРОБНОЕ ОПИСАНИЕ

Последующее описание, для упрощения, разделено на подразделы. Подразделы включают в себя: термины; универсальный компьютер; общий уровень развития техники по отношению к анализу размещения чернил и классификационному анализу; объект разделения чернил и API; работа объекта разделения чернил и API; прикладные программные интерфейсы; альтернативный объект разделения чернил; и заключение.

I. ТЕРМИНЫ

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

Объект «чернила» - структура данных, хранящая один или более чернильных штрихов, вместе со свойствами, способами и/или событиями, или без них.

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

Обработка - процесс определения как графическая информация и/или чернила должны отображаться на экране, в печатном виде или при выводе в другом формате данных.

Сеанс рисования - период времени от момента, когда приложение начинает создавать или редактировать чернила, до того, как анализатор (например, объект разделения чернил) вызывают для анализа чернильных штрихов, и он возвращает проанализированный графический примитив чернил. Анализатор можно вызывать много раз в течение данного сеанса рисования, и штрихи можно добавлять, удалять или иным образом изменять между вызовами анализатора.

II. УНИВЕРСАЛЬНЫЙ КОМПЬЮТЕР

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

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

На накопителе 170 на жестком диске, магнитном диске 190, оптическом диске 192, в ПЗУ 140 или в ОП 150 может храниться множество модулей программ, которые включают в себя операционную систему 195, одну или более прикладных программ 196, другие модули 197 программ и данные 198 программ. Пользователь может вводить команды и информацию в компьютер 100 с помощью устройств ввода данных, например клавиатуры 101, и устройства 102 позиционирования. Другие устройства ввода данных (не показаны) могут включать в себя микрофон, джойстик, игровую клавиатуру, спутниковую антенну, сканер или подобные им устройства. Эти и другие устройства ввода данных часто подключаются к процессору 110 через интерфейс 106 последовательного порта, который соединен с системной шиной 130, но может соединяться с помощью других интерфейсов, таких как параллельный порт, игровой порт или универсальную последовательную шину (USB). Дополнительно, эти устройства могут присоединяться непосредственно к системной шине 130 через соответствующий интерфейс (не показан). Монитор 107 или другой тип устройства отображения также соединен с системной шиной 130 через интерфейс, например видеоадаптер 108. В добавление к монитору 107 персональные компьютеры в типовом варианте включают в себя другие периферийные устройства вывода (не показаны), такие как динамики и принтеры. В качестве примера перьевое устройство 165 ввода графической информации (цифровой планшет) и соответствующее перо или пользовательское устройство 166 ввода данных обеспечивается для ввода в компьютер в цифровой форме вводимой от руки информации. Перьевое устройство 165 ввода графической информации может соединяться с процессором 110 через интерфейс 106 последовательного порта и системную шину 130, как показано на фиг. 1, или с помощью любого другого подходящего соединения. Кроме того, хотя устройство 165 ввода графической информации показано отдельно от монитора 107, используемая область ввода информации устройства 165 ввода графической информации может быть совмещена с областью отображения монитора 107. Дополнительно, устройство 165 ввода графической информации может быть интегрировано в монитор 107, или может существовать как отдельное устройство, расположенное сверху или иным образом прикрепленное к монитору 107.

Компьютер 100 может работать в сетевой среде, использующей логические подключения к одному или более удаленным компьютерам, например к удаленному компьютеру 109. Удаленный компьютер 109 может быть сервером, маршрутизатором, сетевым ПК, одноранговым маршрутизатором или другим обычным сетевым узлом, и типично включает в себя многие или все элементы, описанные выше по отношению к компьютеру 100, хотя только запоминающее устройство 111 с соответствующими прикладными программами 196 показано на фиг.1. Логические подключения, изображенные на фиг.1, включают в себя локальную сеть (ЛС) 112 и глобальную сеть (ГС) 113. Такие сетевые среды обычно используются в офисах, компьютерных сетях в масштабах предприятия, корпоративных сетях (интранет) и Интернет, используя проводные и беспроводные системы связи.

При работе в среде с ЛС компьютер 100 связан с местной сетью 112 через сетевой интерфейс или адаптер 114. При работе в среде с ГС персональный компьютер 100 в типовом случае включает в себя модем 115 или другие средства для установления связи с глобальной сетью 113, например с Интернет. Модем 115, который может быть внутренним или внешним, соединяют с системной шиной 130 через интерфейс 106 последовательного порта. В сетевой среде модули программ, изображенные как относящиеся к персональному компьютеру 100 или к его частям, могут храниться в удаленном запоминающем устройстве.

Следует признать, что показанные сетевые подключения являются примерными и что могут использоваться другие методы установления связи между компьютерами. Предполагается наличие любого из различных известных протоколов, таких как TCP/IP (протокол управления передачей/межсетевой протокол), Ethernet, FTP (протокол передачи файлов), HTTP (протокол передачи гипертекстовых файлов) и т.п., и система может использоваться в конфигурации клиент-сервер для того, чтобы дать возможность пользователю извлекать web-страницы из доступного через сеть сервера. Любой из различных существующих web-браузеров может использоваться для отображения и управления данными на web-страницах.

Фиг.2 показывает пример вычислительной системы 201 с перьевым вводом данных (вводом данных посредством пера (ручки) или карандаша), которая может использоваться вместе с различными аспектами настоящего изобретения. Компьютер на фиг.2 может включать в себя каждую или все особенности, подсистемы и функциональные возможности, показанные в системе на фиг.1. Вычислительная система 201 с перьевым вводом включает в себя большую поверхность 202 отображения, например дисплей с панелью оцифровывания, такой как жидкокристаллический (LCD) экран, на котором отображается множество окон 203. Используя перо 204, пользователь может выбирать, выделять и/или писать на оцифровывающей поверхности 202 отображения. Примеры подходящих оцифровывающих поверхностей отображения 202 включают в себя электромагнитные перьевые устройства ввода графической информации, такие как перьевые устройства ввода графической информации Mutoh или Wacom. Могут также использоваться другие типы перьевых устройств ввода графической информации, например оптические устройства ввода графической информации. Вычислительная система 201 с перьевым вводом интерпретирует действия, сделанные с использованием пера 204, для управления данными, ввода текста, создания рисунков и/или для выполнения обычных компьютерных прикладных задач, таких как электронные таблицы, программы обработки текстов и т.п.

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

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

III. ОБЗОР ПРЕДШЕСТВУЮЩЕГО УРОВНЯ ТЕХНИКИ ДЛЯ АНАЛИЗА РАЗМЕЩЕНИЯ ЧЕРНИЛ И КЛАССИФИКАЦИОННОГО АНАЛИЗА

A. Обобщенное описание системы и способа полного анализа чернил

Чтобы помочь в понимании настоящего изобретения, полезно сделать обзор информации предшествующего уровня техники относительно «анализа размещения» чернил и классификационного анализа чернил (также называемого «анализ чернил»). Хотя любые подходящие системы и способы обработки данных могут использоваться без отрыва от данного изобретения, в некоторых примерах изобретения могут использоваться системы и способы анализа размещения, такие как описанные в заявке на патент США № 10/143 865, поданной 14 мая 2002, и в некоторых примерах изобретения могут использоваться системы и способы классификационного анализа, такие как описанные в заявке на патент США № 10/143 864, поданной 14 мая 2002. В общем случае анализ чернил может происходить любым подходящим способом без отрыва от данного изобретения.

Фиг.3 - схематическое представление, которое в общем виде иллюстрирует пример обобщенной системы и способа, в котором чернила могут анализироваться или разделяться в некоторых примерах данного изобретения. В примере на фиг.3 поступающие или вводимые чернильные штрихи 300 вначале подвергаются процедуре 302 анализа размещения, которая объединяет и анализирует вводимые чернильные штрихи 300 в связанные наборы штрихов, такие как слова, строки, абзацы (или блоки) и/или другие группировки 304. В общем случае способ или система 302 анализа размещения обнаруживают некоторую информацию, относящуюся к размеру и размещению чернильных штрихов 300 на странице, и группируют определенные штрихи, основываясь на размере, размещении и т.д. Пример такой системы или способа описан более подробно вместе с фиг.5, 6A и 6B.

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

Дополнительная обработка вводимых чернил может зависеть от типа штрихов, распознанного системой или средством 306 классификационного анализа (или определенного иным образом). Например, для штрихов или наборов штрихов, которые классифицированы как рукописный текст, таким образом классифицированные наборы штрихов можно послать системе 310 распознавания рукописного текста или другой соответствующей системе обработки. При необходимости или при желании, до введения в систему 310 распознавания рукописного текста или в другую систему обработки, данные о вводимых чернилах могут быть «нормализованы», используя алгоритм или систему 308 нормализации, для размещения данных вводимых чернил в оптимальной ориентации для анализа системой 310 распознавания рукописного текста или другой системой обработки (например, для поворота наклонных вводимых текстовых штрихов к горизонтальной опорной линии, в случае необходимости). Другие системы или способы 308 нормализации и/или системы или способы 310 распознавания рукописного текста (в случае необходимости и/или при желании) могут использоваться без отрыва от настоящего изобретения. Данные, которые выводят из системы или способа 310 распознавания рукописного текста, могут составлять или быть связаны со сгенерированным машиной текстом (например, строками, словами, абзацами и т.д.), который можно использовать любым обычным способом, например, в обычных системах обработки текстов (например, Microsoft WORD® или ему подобных), системах обработки почты, календарях, книгах для записи деловых встреч и т.д.

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

Системы и способы 306 классификационного анализа, используемые в некоторых примерах изобретения, также могут распознавать другие специфические типы записей или рисунков без отрыва от данного изобретения. Например, система классификационного анализа может распознавать вводимые наборы штрихов, как содержащие музыкальные обозначения, математическую информацию (например, формулы, математические символы (+, -, =, %, x, sin, cos, tan и т.д.) и подобные им), таблицы, диаграммы, графики, блок-схемы, принципиальные схемы, рисунки, эскизы, каракули и т.д., без отрыва от данного изобретения. Такие наборы штрихов, если они присутствуют, могут посылаться к более специализированным системам распознавания и/или другим подходящим приложениям обработки без отрыва от настоящего изобретения.

Некоторые или все функциональные возможности, описанные вместе с описанием фиг.3, могут выполняться над вводимыми данными чернил после того, как пользователь полностью введет все чернила на электронную страницу или в документ (например, после команды пользователя, такой как команда «сохранить», «анализировать», «закрыть» или «распознать»). Однако из-за времени обработки, которое требуется компьютеру для выполнения типичного анализа размещения и анализа распознавания рукописного текста, пользователь может испытывать существенные задержки, если обработка проводится на этом очень редком, специализированном основании. Такие задержки при обработке могут быть достаточно долгими, так что пользователь будет разочарован ожиданием, пока компьютерная система завершит свой анализ перед переходом к последующим необходимым операциям (например, ввод большего количества чернил, переход к новой странице, печать, открытие нового документа или приложения и т.д.), особенно если электронный документ длинный или содержит большой объем чернил. Системы и способы согласно по меньшей мере некоторым примерам настоящего изобретения позволяют вычислительным системам с перьевым вводом выполнять различные анализы, такие как анализ 302 размещения, классификационный анализ 306, анализ 310 распознавания рукописного текста и т.д., поэтапно, в реальном масштабе времени, в то время как пользователи продолжают использовать вычислительные системы с перьевым вводом (например, вводить и/или изменять чернильные штрихи на странице). Кроме того, в некоторых примерах систем и способов согласно изобретению различные средства анализа работают в фоновом режиме, со «снимком» (копией) структуры данных прикладной программы, с целью минимизировать время, когда структура данных прикладной программы недоступна пользователю для ввода чернил (термин «структура данных прикладной программы», который используется в данном документе, означает структуру данных, используемую в связи с прикладной программой). Хотя любые подходящие поэтапные системы и способы анализа данных могут использоваться без отрыва от изобретения, примеры подходящих систем и способов описаны в заявке на патент США № 10/143 804, поданной 14 мая 2002.

B. Описание примерных систем и способов для анализа размещения и классификационного анализа

Фиг.4 иллюстрирует схематическое представление одного примера системы, которая пригодна для применения настоящего изобретения. Как показано, полная система 410 включает в себя прикладную систему или программу 420, которая включает в себя анализатор 422 или связана с ним. Полная система 410 может быть воплощена в вычислительной системе с перьевым вводом подобно той, которая показана на фиг.2. Пользователь 400 вводит чернильные штрихи в систему 410 (или чернильные штрихи загружаются, например, из памяти или из внешнего источника), и чернильные штрихи сохраняются прикладной программой 420, например, в структуре 402 данных прикладной программы (которую можно считать структурой 402 данных дерева документа, подобно показанным на фиг.6A и 6B). Для того чтобы пользователь 400 мог продолжать делать изменения в структуре 402 данных дерева документа в то время, когда анализатор 422 работает, анализатор 422 содержит структуру 404 данных зеркального дерева (точной копии). Изменения, сделанные в структуре 402 данных дерева документа (например, пользователем 400, анализатором 422, другим источником и т.д.), немедленно передают структуре 404 данных зеркального дерева так, чтобы структура 404 данных зеркального дерева полностью «отражала» содержимое структуры 402 данных дерева документа.

Структура 404 данных зеркального дерева используется для доставки вводимых данных двум средствам 406 и 408 анализа в анализаторе 422. В показанном на фиг.4 примере одним средством анализа является средство 406 анализа размещения (которое может проводить, например, анализ 302 размещения, как описано выше при обсуждении фиг.3), а другим - средство 408 распознавания (которое может проводить, например, анализ 310 распознавания рукописного текста и/или анализ 314 распознавания примечаний, как описано выше для фиг.3). Средства 406 и 408 принимают «снимки» (копии) 424 и 426, соответственно, структуры 404 данных зеркального дерева в качестве входных данных, и они оперируют с этими «снимками» 424 и 426 в фоновом режиме вместо того, чтобы работать непосредственно со структурой 402 данных дерева документа или структурой 404 данных зеркального дерева. Таким образом пользователь 400 может продолжать выполнять операции со структурой 402 данных дерева документа в прикладной программе 420 (например, добавлять чернила, удалять чернила, изменять чернила и т.д.), в то время как различные средства 406 и 408 анализа анализатора также работают, и пользователь 400 не испытывает существенных прерываний в работе (например, задержек обработки), когда средства 406 и 408 обрабатывают данные.

Для генерации «снимков» 424 и 426 в некоторых примерах существующие структуры данных снимка могут сравниваться со структурой 404 данных зеркального дерева. Отмечаются различия между ними, и минимальное количество операций выполняется для синхронизации снимков 424 или 426 со структурой 404 данных зеркального дерева. Таким образом, при создании снимка происходит минимальная перезапись данных (например, неизмененные данные от предыдущего снимка не перезаписываются), что также помогает ускорить работу анализатора 422.

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

Когда средства 406 и 408 анализатора завершают свою работу с входными данными 424 и 426 снимков, соответственно, результирующую информацию можно послать назад прикладной программе 420, как обозначено стрелками 428 и 430, соответственно. Однако, как отмечено выше, польз