СПИСКИ АВТОМАТИЧЕСКОГО ЗАПОЛНЕНИЯ И РУКОПИСНЫЙ ВВОД
AUTOCOMPLETE AND HANDWRITTEN INPUT LISTS

Уровень техники
Списки автоматического заполнения в настоящее время используются в пользовательских интерфейсах (ПИ). Например, когда пользователь вводит информацию в строку адреса интернет-браузера, пользователю могут быть представлены предполагаемые варианты окончания вводимых пользователем данных. В таких системах ввода пользователь может начинать печатать «www» в поле ввода адреса, и ему будут представлены следующие возможные варианты выбора, которые могут включать в себя или могут не включать в себя ранее посещенные веб-сайты:
http://www.
https: // www.
ftp://www.
www.cnn.com
www.msnbc.com
…
Одним из преимуществ использования списков автоматического заполнения является то, что они могут представлять пользователю предполагаемые варианты окончания информации, уже введенной в поле. Списки автоматического заполнения обеспечивают предположения о содержимом, основываясь, по меньшей мере, на одном из 1) предшествующей введенной информации или 2) ожидаемой вводимой информации.
Хотя обычные списки автоматического заполнения полезны, они ограничены системами ввода текста, а именно реагируют только на ввод информации с клавиатуры. Пользователи, которые используют компьютерные системы с рукописным вводом, ограничены в своем использовании списков автоматического заполнения, поскольку обычные системы не реагируют на рукописный ввод.
Сущность изобретения
Аспекты настоящего изобретения обращаются к одной или большему количеству описанных выше проблем, таким образом обеспечивая улучшенные возможности автоматического заполнения по отношению к рукописному вводу. Аспекты настоящего изобретения позволяют пользователям вводить или начинать вводить рукописную информацию, а система в ответ обеспечивает содержимое автоматического заполнения.
Краткое описание чережей
Настоящее изобретение показано на сопроводительных чертежах, приводимых в качестве примера, а не в качестве ограничения.
Фиг. 1 показывает схему универсальной цифровой компьютерной конфигурации, в которой можно осуществлять определенные аспекты настоящего изобретения.
Фиг. 1B-1M показывают универсальную компьютерную конфигурацию, поддерживающую один или более аспектов настоящего изобретения.
Фиг. 2 показывает иллюстративный пример компьютерной системы с рукописным вводом в соответствии с аспектами настоящего изобретения.
Фиг. 3 показывает взаимодействие между иллюстративными компонентами в соответствии с аспектами настоящего изобретения.
Фиг. 4 показывает пример списка автоматического заполнения в соответствии с аспектами настоящего изобретения.
Фиг. 5 показывает взаимодействие различных объектов по меньшей мере в одном из аспектов настоящего изобретения.
Фиг. 6 показывает другой пример, который является следствием использования списка автоматического заполнения в соответствии с аспектами настоящего изобретения.
Фиг. 7 показывает взаимодействие обычного списка автоматического заполнения с приложением.
Осуществление изобретения
Аспекты настоящего изобретения относятся к обеспечению информации автоматического заполнения в ответ на вводимую пользователем рукописную информацию. Информация автоматического заполнения может изменяться в соответствии с используемым приложением.
Следует отметить, что в последующем описании сформулированы различные связи между элементами. Следует отметить, что эти связи в общем случае, и если не определено иначе, могут быть прямыми или непрямыми, и что данное описание не налагает ограничений в данном отношении.
Рукописные «электронные чернила» становятся все более популярными среди компьютерных пользователей. Несмотря на увеличивающееся признание рукописного ввода, как форма ввода информации он имеет свои недостатки. Важно то, что распознавание рукописного ввода не всегда совершенно. Несоответствие между тем, что пользователь пытается написать, и распознанным рукописным текстом производит плохое впечатление на пользователя. Пытаясь преодолеть неудачное распознавание, пользователь переключается к печати (на реальной или отображаемой клавиатуре) или пытается повторно написать от руки «чернилами». Понятно, что пользователи могут разочароваться в использовании стилуса для управления приложениями, которым для функционирования нужен ввод текста.
Аспекты изобретения относятся к обеспечению интерфейса между панелью приема рукописного текста и процессом автоматического заполнения. В одном из примеров изобретения приложение может иметь пользовательский интерфейс, который требует ввода пользователем информации. Пользователь, приложение или операционная система могут вызывать панель приема рукописного текста для приема рукописной информации пользователя. Панель приема рукописного текста может распознавать и направлять распознанный текст к процессу автоматического заполнения, причем процесс автоматического заполнения определяет предполагаемое содержимое, основываясь на информации, которую он принимает, и ждет от пользователя ввода информации. Пользователь может выбрать один из вариантов, предложенных процессом автоматического заполнения, и данный вариант выбора затем отправляют к приложению. Альтернативно пользователь может добавлять информацию посредством панели приема рукописного текста, где данную информацию распознают, и процесс автоматического заполнения предлагает варианты, основываясь на информации от панели приема рукописного текста.
В других аспектах настоящего изобретения панель ввода рукописного текста и процесс автоматического заполнения могут обмениваться между собой данными, когда пользователь выбирает и/или добавляет новую информацию к панели приема рукописного текста.
В некоторых ситуациях пользователь может использовать информацию, которая была ранее распознана, к которой ранее обращались (как к существующей в памяти) или использовать предопределенную структуру для вводимой информации. Эти и другие аспекты настоящего изобретения описаны в данной работе.
Характеристики чернил
Как известно пользователям, которые используют чернильные ручки, физические чернила (разновидность, которую наносят на бумагу, используя ручку с чернильным резервуаром) могут передавать больше информации, чем последовательность координат, соединенных с помощью линейных сегментов. Например, физические чернила могут отражать давление ручки (с помощью толщины чернильной линии), угол наклона ручки (с помощью формы линейных или изогнутых сегментов и поведения чернил вокруг отдельных точек) и скорость пера ручки (с помощью прямолинейности, ширины линии и изменения ширины линии по прямой или кривой линии). Дополнительные примеры включают в себя характеристики поглощения волокнами бумаги или другой поверхности, на которую их наносят. Эти «тонкие» характеристики также помогают передавать перечисленные выше свойства. С помощью этих дополнительных свойств эмоции, индивидуальность, выделение и т.д. можно передавать лучше, чем с помощью линии между точками, которая имеет одинаковую ширину.
«Электронные чернила» (или «чернила») относятся к вводу и отображению электронной информации, вводимой пользователем с использованием устройства ввода данных на основе стилуса. Понятие «электронные чернила» относится к последовательности или любой произвольной совокупности штрихов, где каждый штрих состоит из последовательности точек. Штрихи могут быть нарисованы или получены в одно и тоже время, или они могут быть нарисованы или получены в различное время и различных местах и по независимым причинам. Точки могут быть представлены, используя разнообразие известных методик, которые включают в себя декартовы координаты (X, Y), полярные координаты (r, θ) и другие методики, которые известны из предшествующего уровня техники. «Электронные чернила» могут включать в себя отображения свойств реальных чернил, таких как давление, угол наклона, скорость, цвет, размер пера и непрозрачность чернил. «Электронные чернила» могут дополнительно включать в себя другие свойства, включая порядок того, как «чернила» были нанесены на странице (растровый образец слева направо затем вниз для большинства западных языков), временные метки (указание, когда «чернила» были нанесены), указание автора «чернил» и исходного устройства (по меньшей мере одно из двух: или идентификатора компьютера, на котором были нарисованы «чернила», или идентификатор пера, используемого для нанесения «чернил») среди другой информации.
Среди описанных выше характеристик прежде всего используют очередность штрихов во времени, и штрих, как последовательность координат. Могут также использоваться все другие характеристики.
<u>Термин</u>
Определение
«Чернила»
Последовательность или набор штрихов со свойствами. Последовательность штрихов может включать в себя штрихи в упорядоченной форме. Последовательность можно упорядочивать по времени ввода или по месту, где на странице появляются штрихи, или при коллективной работе - по автору «чернил». Возможно другое упорядочивание. Набор штрихов может включать в себя последовательности штрихов или неупорядоченные штрихи, или любую их комбинацию. Дополнительно некоторые свойства могут быть уникальными для каждого штриха или точки в штрихе (например, давление, скорость, угол наклона и т.п.). Эти свойства могут храниться на уровне штриха или точки, а не на уровне «чернил».
Объект «чернила»
Структура данных, в которой хранятся «чернила» со свойствами или без свойств.
Штрих
Последовательность или набор введенных точек. Например, при визуализации последовательность точек может быть связана с линиями. Альтернативно штрих может быть представлен как точка и вектор в направлении следующей точки. Вкратце, понятие штриха охватывает любое представление точек или сегментов, относящихся к «чернилам», независимо от основного представления точек и/или того, что соединяет точки.
Документ
Любой электронный файл, который имеет просматриваемое представление и содержимое. Документ может включать в себя веб-страницу, документ программы обработки текстов, страницу или блок с заметками, электронную таблицу, визуальное представление, запись базы данных, файлы изображений и их комбинации.
Визуализировать, или визуализация, или визуализиро-ванный
Процесс определения того, как должна отображаться информация (которая включает в себя текст, графические символы и/или «электронные чернила»): на экране, в печатном виде или каким-либо другим способом.
Машиночитаемый носитель
Любые доступные носители, к которым может обращаться пользователь компьютерной системы. Для примера, а не в качестве ограничения, «машиночитаемые носители» могут включать в себя компьютерные носители данных и средства связи.
Компьютерные носители данных
«Компьютерные носители данных» включают в себя энергозависимые и энергонезависимые, съемные и несъемные носители, реализованные с помощью любого способа или технологии для хранения информации, такой как считываемые компьютером команды, структуры данных, программные модули или другие данные. «Компьютерные носители данных» включают в себя, не ограничиваясь ими, оперативную память (ОП), постоянное запоминающее устройство (ПЗУ), электрически стираемое программируемое постоянное запоминающее устройство (ЭСППЗУ), флэш-память или память другой технологии, компакт-диски (CD-ROM), цифровые универсальные диски (DVD) или другую оптическую дисковую память, магнитные кассеты, магнитную ленту, магнитную дисковую память или другие магнитные запоминающие устройства; или любой другой носитель, который может использоваться для хранения необходимой информации и к которому может обращаться компьютер.
Средства связи
«Средства связи» обычно представляют собой считываемые компьютером команды, структуры данных, программные модули или другие данные в модулированном сигнале данных, таком как несущая волна, или используют другой механизм транспортировки и включают в себя любые средства доставки информации.
Универсальная компьютерная конфигурация
Фиг. 1 показывает пример соответствующей конфигурации 100 компьютерной системы, в которой можно реализовать изобретение. Конфигурация 100 компьютерной системы является только одним из примеров соответствующих компьютерных конфигураций и не налагает никаких ограничений относительно возможностей использования или функциональных возможностей изобретения. Данная компьютерная конфигурация 100 не должна интерпретироваться, как имеющая какую-либо зависимость или требования, которые относятся к какому-либо одному или к комбинации компонентов, показанных в примерной конфигурации 100.
Изобретение работает с множеством других универсальных или специальных структур или конфигураций компьютерных систем. Примеры известных компьютерных систем, структур и/или конфигураций, которые могут подходить для использования с данным изобретением, включают в себя, не ограничиваясь ими, персональные компьютеры, компьютеры-серверы, карманные или портативные компьютеры, многопроцессорные системы, системы на основе микропроцессора, компьютерные приставки к телевизору, программируемую бытовую электронику, сетевые ПК (персональные компьютеры), миникомпьютеры, универсальные компьютеры, распределенные компьютерные конфигурации, которые включают в себя любую из указанных выше систем или устройств, и т.п.
Изобретение может быть описано в общем контексте выполняемых компьютером команд, таких как программные модули, выполняемые компьютером. В общем случае программные модули включают в себя подпрограммы, программы, объекты, компоненты, структуры данных и т.д., которые выполняют определенные задачи или воплощают определенные абстрактные данные. Изобретение может также воплощаться в распределенных компьютерных конфигурациях, в которых задачи выполняют с помощью удаленных устройств обработки, которые соединены через систему связи. В распределенной компьютерной конфигурации программные модули могут располагаться и на локальных, и на удаленных компьютерных носителях данных, включающих в себя запоминающие устройства.
Обращаясь к фиг. 1, примерная система для реализации изобретения включает в себя универсальное вычислительное устройство в форме компьютера 110. Компоненты компьютера 110 могут включать в себя, не ограничиваясь ими, процессор 120, системную память 130 и системную шину 121, которая соединяет различные компоненты системы, включающие в себя системную память, с процессором 120. Системная шина 121 может быть любой из нескольких видов шинных структур, включающих в себя шину памяти или контроллер памяти, периферийную шину и локальную шину, использующих любую из разнообразия шинных архитектур. Для примера, а не в качестве ограничения, такая архитектура включает в себя шину архитектуры, соответствующей промышленному стандарту (ISA), шину микроканальной архитектуры (MCA), шину расширенной ISA (EISA), локальную шину ассоциации по стандартам в области видеоэлектроники (VESA) и шину стандарта соединения периферийных устройств (PCI), также известную как шина расширения.
Компьютер 110 обычно включает в себя различные машиночитаемые носители. Машиночитаемый носитель может быть любым доступным носителем, к которому может обращаться компьютер 110, и включает в себя и энергозависимые, и энергонезависимые носители, съемные и несъемные носители. Для примера, но не в качестве ограничения, машиночитаемые носители могут включать в себя компьютерные носители данных и средства связи. Компьютерные носители данных включают в себя и энергозависимые, и энергонезависимые, и съемные, и несъемные носители, реализованные с помощью любого способа или технологии хранения информации, такой как считываемые компьютером команды, структуры данных, программные модули или другие данные. Компьютерные носители данных включают в себя, не ограничиваясь, оперативную память (ОП), постоянное запоминающее устройство (ПЗУ), электрически стираемое программируемое постоянное запоминающее устройство (ЭСППЗУ), флэш-память или память другой технологии, компакт-диски (CD-ROM), цифровые универсальные диски (DVD) или другую оптическую дисковую память, магнитные кассеты, магнитную ленту, магнитную дисковую память или другие магнитные запоминающие устройства, или любой другой носитель, который может использоваться для хранения необходимой информации и к которому может обращаться компьютер 110. Средства связи обычно воплощают считываемые компьютером команды, структуры данных, программные модули или другие данные в виде модулированного сигнала данных, такого как несущая волна, или используют другой механизм транспортировки и включают в себя любые средства доставки информации. Термин «модулированный сигнал данных» означает сигнал, одна или более характеристик которого устанавливаются или изменяются таким образом, чтобы кодировать информацию в сигнале. Для примера, но не в качестве ограничения, средства связи включают в себя проводные каналы связи, такие как проводные сети или прямое проводное подключение, и беспроводные каналы связи, такие как акустический, радиочастотный (РЧ), инфракрасный и другие беспроводные каналы связи. Машиночитаемые носители должны также включать в себя комбинации любого из указанных выше носителей.
Системная память 130 включает в себя компьютерные носители данных в форме энергозависимой и/или энергонезависимой памяти, такой как постоянное запоминающее устройство (ПЗУ) 131 и оперативная память (ОП) 132. Базовая система ввода-вывода (BIOS) 133, которая содержит основные подпрограммы, которые помогают передавать информацию между элементами в пределах компьютера 110, например, во время запуска, обычно хранится в ПЗУ 131. ОП 132 обычно содержит данные и/или программные модули, которые мгновенно доступны для обработки и/или в данный момент обрабатываются процессором 120. Для примера, а не в качестве ограничения, фиг. 1 показывает операционную систему 134, прикладные программы 135, другие программные модули 136 и данные программ 137.
Компьютер 110 может также включать в себя другие съемные/несъемные, энергозависимые/энергонезависимые компьютерные носители данных. Только для примера, фиг. 1 показывает накопитель 141 на жестком диске, который считывает информацию или который записывает информацию на несъемный энергонезависимый магнитный диск, накопитель 151 на магнитном диске, который считывает информацию или записывает информацию на съемный энергонезависимый магнитный диск 152, и привод 155 оптического диска, который считывает информацию или записывает информацию на съемный энергонезависимый оптический диск 156, такой как CD-ROM или другой оптический носитель. Другие съемные/несъемные, энергозависимые/энергонезависимые компьютерные носители данных, которые могут использоваться в примерной конфигурации, включают в себя кассеты магнитной ленты, платы флэш-памяти, цифровые универсальные диски, цифровую видеоленту, полупроводниковую ОП, полупроводниковое ПЗУ и т.п., но не ограничены ими. Накопитель 141 на жестком диске обычно подключается к системной шине 121 через интерфейс с несъемным запоминающим устройством, такой как интерфейс 140, а накопитель 151 на магнитном диске и привод 155 оптического диска обычно подключается к системной шине 121 через интерфейс со съемным запоминающим устройством, такой как интерфейс 150.
Устройства и соответствующие им компьютерные носители данных, которые описаны выше и показаны на фиг. 1, обеспечивают хранение считываемых компьютером команд, структур данных, программных модулей и других данных для компьютера 110. На фиг.1, например, накопитель 141 на жестком диске показан в качества устройства хранения операционной системы 144, прикладных программ 145, других программных модулей 146 и данных 147 программ. Следует отметить, что эти компоненты могут или быть тем же самым, что и операционная система 134, прикладные программы 135, другие программные модули 136 и данные 137 программ, или отличаться от них. Операционной системе 144, прикладным программам 145, другим программным модулям 146 и данным 147 программ присвоены другие обозначения для того, чтобы показать, что они, как минимум, являются другими копиями. Пользователь может вводить команды и информацию в компьютер 20 через устройства ввода данных, такие как клавиатура 162 и устройство 161 позиционирования, такое как «мышь», шаровой манипулятор («трекболл») или сенсорная панель. Другие устройства ввода данных (не показаны) могут включать в себя микрофон, джойстик, игровую клавиатуру, спутниковую антенну, сканер или подобное устройство. Эти и другие устройства ввода данных часто устанавливают связь с процессором 120 через входной пользовательский интерфейс 160, который связан с системной шиной, но они могут устанавливать связь с помощью другого интерфейса и шинных структур, таких как параллельный порт, игровой порт или универсальная последовательная шина (USB). Монитор 191 или другой вид устройства отображения также связан с системной шиной 121 через интерфейс, такой как видеоинтерфейс 190. В дополнение к монитору компьютеры могут также включать в себя другие периферийные устройства вывода, такие как динамики 196 и принтер 197, которые могут быть связаны через интерфейс 195 внешних устройств вывода информации.
Компьютер 110 может работать в сетевом окружении, используя логические подключения к одному или более удаленных компьютеров, такому как удаленный компьютер 180. Удаленный компьютер 180 может быть персональным компьютером, сервером, маршрутизатором, сетевым ПК, равноправным устройством сети или другим обычным сетевым узлом, и обычно включает в себя многие или все элементы, описанные выше относительно компьютера 110, хотя на фиг. 1 показано только запоминающее устройство 181. Логические подключения, показанные на фиг. 1, включают в себя локальную сеть (ЛС) 171 и глобальную сеть (ГС) 173, но могут также включать в себя другие сети. Такие сетевые конфигурации обычно применяют в офисах, компьютерных сетях в масштабах предприятия, корпоративных сетях (интранет) и Интернет.
При работе в конфигурации с ЛС компьютер 110 связан с ЛС 171 через сетевой интерфейс или адаптер 170. При работе в конфигурации с ГС компьютер 110 обычно включает в себя модем 172 или другие средства для установления связи по ГС 173, такой как Интернет. Модем 172, который может быть внутренним или внешним, может быть связан с системной шиной 121 через входной пользовательский интерфейс 160 или другой соответствующий механизм. В сетевом окружении программные модули, показанные относительно компьютера 110 или его частей, могут храниться в удаленном запоминающем устройстве. Для примера, но не в качестве ограничения, фиг. 1 показывает удаленные прикладные программы 185, как находящиеся в запоминающем устройстве 181. Следует признать, что показанные сетевые соединения являются примерными, и могут использоваться другие средства установления связи между компьютерами.
В некоторых аспектах перьевое устройство 165 ввода графической информации и сопровождающее его «перо», или «стилус», 166 обеспечивают для ввода в цифровой форме вводимого рукописного текста. Хотя показано прямое соединение между перьевым устройством 165 ввода графической информации и входным пользовательским интерфейсом 160, на практике перьевое устройство 165 ввода графической информации может быть связано непосредственно с процессором 110, с параллельным портом или с другим интерфейсом и системной шиной 130 с помощью любой методики, включая и беспроводную связь. Кроме того, перо 166 может иметь связанную с ним камеру и приемопередатчик для беспроводной передачи зафиксированной камерой информации изображения к интерфейсу, взаимодействующему с шиной 130. Дополнительно в дополнение или вместо камеры для определения штрихов «электронных чернил» перо может иметь другие системы считывания, которые включают в себя акселерометры, магнитометры и гироскопы.
Следует признать, что показанные сетевые соединения являются примерными, и могут использоваться другие средства установления связи между компьютерами. Предполагается существование любого из различных известных протоколов, таких как TCP/IP (протокол управления передачей / интернет-протокол), Ethernet, FTP (протокол передачи файлов), HTTP (протокол передачи гипертекстовых файлов) и т.п., и системой можно управлять в конфигурации клиент-сервер для предоставления пользователю возможности получать веб-страницы от доступного через сеть сервера. Любой из различных обычных веб-браузеров можно использовать для отображения и управления данными на веб-страницах.
Программный интерфейс (или более просто, интерфейс) можно рассматривать как любой механизм, процесс, протокол для предоставления возможности одному или более сегментов кода осуществлять связь или обращаться к функциональным возможностям, обеспеченным одним или большим количеством других сегментов кода. Альтернативно программный интерфейс можно рассматривать как один или большее количество механизмов, способов, вызовов функций, модулей, объектов и т.д. компонента системы, способных осуществлять связь с одним или большим количеством механизмов, способов, вызовов функций, модулей и т.д. другого компонента (ов). Термин «сегмент кода» в предыдущем предложении включает в себя одну или большее количество команд или строк программы, и включает в себя, например, модули кода, объекты, подпрограммы, функции и т.д., независимо от применяемой терминологии, независимо от того, компилированы ли сегменты кода отдельно, обеспечены ли сегменты кода как исходный, промежуточный или объектный код, используются ли сегменты кода в системе или процессе реального времени, находятся ли они на одном и том же или на разных компьютерах или распределены по множеству компьютеров и воплощают ли функциональные возможности, представленные сегментами кода, полностью в программном обеспечении, полностью в аппаратных средствах или в комбинации аппаратных средств и программного обеспечения.
Теоретически программный интерфейс можно рассматривать в общем случае, как показано на фиг. 1B или фиг. 1C. Фиг. 1B показывает интерфейс «Интерфейс 1» как канал передачи данных, через который первый и второй сегменты кода осуществляют связь. Фиг. 1C показывает интерфейс, содержащий объекты интерфейса I1 и I2 (которые могут быть или могут не быть частями первого и второго сегмента кода), которые дают возможность первому и второму сегментам кода системы осуществлять связь через среду передачи данных М. В представлении на фиг. 1C объекты интерфейса I1 и I2 можно рассматривать как отдельные интерфейсы той же самой системы, и можно также полагать, что объекты I1 и I2 плюс среда передачи данных М составляет интерфейс. Хотя фиг. 1B и 1C показывают двунаправленный поток и интерфейс на каждой стороне потока, некоторые варианты реализации могут иметь поток информации только в одном направлении (или не иметь потока информации, как описано ниже) или могут иметь объект интерфейса только на одной стороне. Для примера, но не в качестве ограничения, такие термины, как программный интерфейс приложения (API), точка входа, способ, функция, подпрограмма, дистанционный вызов процедуры и интерфейс объектной модели программных компонентов (COM), находятся в пределах определения программного интерфейса.
Аспекты такого программного интерфейса могут включать в себя способ, посредством которого первый сегмент кода передает информацию (причем «информация» используется в самом широком смысле и включает в себя данные, команды, запросы и т.д.) ко второму сегменту кода; способ, посредством которого второй сегмент кода принимает информацию; и структуру, последовательность, синтаксис, организацию, схему, распределение времени и содержимое информации. В этом смысле сама выделенная среда передачи данных может быть не важна для работы интерфейса без относительно к тому, является ли среда передачи данных проводной или беспроводной, или их комбинацией, до тех пор, пока информацию передают способом, определенным с помощью данного интерфейса. В определенных ситуациях информацию могут не передавать в одном или в обоих направлениях в обычном смысле, поскольку перемещение информации может происходить или через другой механизм (например, информация, помещенная в буфер, файл и т.д. отдельно от потока информации между сегментами кода), или она может отсутствовать, как в случае, когда один сегмент кода просто обращается к функциональным возможностям, выполняемым вторым сегментом кода. Любые или все из этих аспектов могут быть важными в данной ситуации, например, в зависимости от того, являются ли сегменты кода частью системы в слабосвязанной конфигурации или в конфигурации с сильной связью, и таким образом этот список нужно считать иллюстративным, а не ограничивающим.
Это понятие программного интерфейса известно специалистам и ясно из предшествующего подробного описания изобретения. Однако существуют другие способы реализации программного интерфейса, и, если явно не исключено, их также охватывает формула изобретения, сформулированная в конце данного описания. Такие другие способы, как может показаться, являются более замысловатыми или сложными, чем упрощенное представление на фиг. 1B и 1C, но они тем не менее выполняют аналогичную функцию для полного достижения того же самого результата. Далее кратко описаны некоторые иллюстративные альтернативные варианты воплощения программного интерфейса.
A. РАЗЛОЖЕНИЕ НА СОСТАВНЫЕ ЧАСТИ
Связь одного сегмента кода с другим можно достигать неявно с помощью разбиения данной связи на множество отдельных связей. Это изображено схематично на фиг. 1D и 1E. Как показано, некоторые интерфейсы могут быть описаны в виде наборов функциональных возможностей, которые можно делить на части. Таким образом, функциональные возможности интерфейса на фиг. 1B и 1C можно разложить на составные части для достижения того же самого результата, так же, как можно математически выразить 24, или 2 умножить на 2 умножить на 3 умножить на 2. Соответственно, как показано на фиг. 1D, действия, обеспеченные с помощью интерфейса «Интерфейс 1», можно разделить для преобразования связи данного интерфейса на множество интерфейсов «Интерфейс 1A», «Интерфейс 1B», «Интерфейс 1C» и т.д., достигая тот же самый результат. Как показано на фиг. 1E, действия, которые обеспечивают с помощью интерфейса I1, можно разделить на множество интерфейсов I1a, I1b, I1c и т.д., достигая того же самого результата. Точно так же интерфейс I2 второго сегмента кода, который принимает информацию от первого сегмента кода, можно разложить на множество интерфейсов I2a, I2b, I2c и т.д. При разложении на составные части количество интерфейсов, которые включает в себя 1-ый сегмент кода, необязательно должно соответствовать количеству интерфейсов, которые включает в себя 2-ой сегмент кода. В любом из случаев на фиг. 1D и 1E, функциональная сущность интерфейсов «Интерфейс 1» и I1 остается такой же, как на фиг. 1B и 1C, соответственно. Разложение интерфейсов на составные части может также подчиняться свойствам ассоциативности, коммутативности и другим математическим свойствам, так что разложение на составные части может быть трудно распознать. Например, порядок операций может не иметь значения, и следовательно, выполняемую интерфейсом функцию можно выполнять до того, как ее достигнут с помощью интерфейса, с помощью другого сегмента кода или интерфейса, или выполнять с помощью отдельного компонента системы. Кроме того, специалисты в области программирования должны признать, что существуют различные способы создания различных вызовов функций, которые достигают того же самого результата.
B. ПОВТОРНОЕ ОПРЕДЕЛЕНИЕ
В некоторых случаях можно игнорировать, добавлять или повторно задавать некоторые аспекты (например, параметры) программного интерфейса, в любом случае достигая намеченный результат. Это показано на фиг. 1F и 1G. Например, предполагают, что интерфейс «Интерфейс 1» на фиг. 1B включает в себя вызов функции «квадрат» (вводимые данные, точность, выводимые данные), данный вызов включает в себя три параметра - вводимые данные, точность и выводимые данные, и его выдают от 1-го сегмента кода ко 2-му сегменту кода. Если средний параметр «точность» не представляет никакого интереса в данном сценарии, как показано на фиг. 1F, то его можно просто игнорировать или даже заменить бессмысленным (в этой ситуации) параметром. Можно также добавлять дополнительный параметр, который не имеет значения. В любом из этих событий функциональные возможности функции «квадрат» могут быть достигнуты, пока выходные данные возвращают после того, как вводимые данные возводят в квадрат с помощью второго сегмента кода. Точность может быть очень значимым параметром для некоторых нижестоящих или других частей компьютерной системы; однако, когда признают, что точность не является необходимой для узкой цели вычисления квадрата, ее можно заменять или игнорировать. Например, вместо передачи правильного значения точности можно передавать бессмысленное значение, такое как дата рождения, не оказывая неблагоприятного воздействия на результат. Точно так же как показано на фиг. 1G, интерфейс I1 заменяют интерфейсом I1', который повторно задан с целью игнорирования или добавления параметров для интерфейса. Интерфейс I2 можно повторно задавать подобным образом, как интерфейс I2', повторно задавать так, чтобы игнорировать ненужные параметры, или параметры, которые могут обрабатываться в другом месте. Смысл состоит в том, что в некоторых случаях программный интерфейс может включать в себя такие аспекты, как параметры, которые не нужны для некоторых целей, и таким образом их можно игнорировать или повторно задавать, или обрабатывать в другом месте в других целях.
C. ВСТРОЕННОЕ КОДИРОВАНИЕ
Можно также выполнять слияние некоторых или всех функциональных возможностей двух отдельных модулей кода так, чтобы «интерфейс» между ними изменял форму. Например, функциональные возможности на фиг. 1B и 1C можно преобразовать в функциональные возможности на фиг. 1H и 1I соответственно. На фиг. 1H предыдущие 1-й и 2-й сегменты кода на фиг. 1B слиты в модуль, содержащий их оба. В этом случае сегменты кода все еще могут осуществлять связь друг с другом, но интерфейс можно адаптировать к форме, которая больше подходит для единого модуля. Таким образом, например, формальные утверждения «вызов» и «возвращение», возможно, больше не будут нужны, но подобная обработка или ответ(ы) в соответствии с интерфейсом «Интерфейс 1» могут по-прежнему существовать. Точно так же, как показано на фиг. 1I, часть интерфейса I2 (или весь) на фиг. 1C можно записать внутрь интерфейса I1 для формирования интерфейса I1''. Как показано, интерфейс I2 делится на I2a и I2b, и часть интерфейса I2a кодируют внутрь интерфейса I1 для формирования интерфейса I1''. Для конкретного примера полагают, что интерфейс I1 на фиг. 1C выполняет вызов функции «квадрат» (вводимые данные, выводимые данные), который принимают с помощью интерфейса I2, который после обработки значения, передаваемого с вводимыми данными (для вычисления квадрата вводимого значения) второму сегменту кода, возвращает результат возведения в квадрат с помощью выводимой информации. В таком случае обработка, выполняемая вторым сегментом кода (возведение в квадрат вводимых данных), может выполняться с помощью первого сегмента кода без вызова интерфейса.
D. РАЗЪЕДИНЕНИЕ
Связь одного сегмента кода с другим можно достигать неявно с помощью разделения связи на множество отдельных связей. Это показано схематично на фиг. 1J и 1K. Как показано на фиг. 1J, один или большее количество сегментов кода (интерфейса(ов) разъединения, так как они разъединяют функциональные возможности и/или функции исходного интерфейса) обеспечивают для преобразования связи по первому интерфейсу «Интерфейс 1», для адаптации ее к другому интерфейсу, в данном случае к интерфейсам «Интерфейс 2A», «Интерфейс 2B» и «Интерфейс 2C». Это можно сделать, например, когда существует установленная базовая система приложений, спроектированных для осуществления связи, например, с операционной системой в соответствии с протоколом «Интерфейса 1», но затем операционную систему изменяют для использования других интерфейсов, в данном случае интерфейсов «Интерфейс 2A», «Интерфейс 2B» и «Интерфейс 2C». Дело в том, что исходный интерфейс, используемый 2-м сегментом кода, изменяют так, что он больше несовместим с интерфейсом, используемым 1-м сегментом кода, и таким образом промежуточная форма используется, чтобы сделать старый и новый интерфейсы совместимыми. Точно так же, как показано на фиг. 1K, третий сегмент кода можно вводить с помощью интерфейса разъединения DI1 для приема связи от интерфейса I1, и с помощью интерфейса разъединения DI2 для передачи функциональных возможностей интерфейса, например, к интерфейсам I2a и I2b, перепроектированным для работы с DI2, но для обеспечения того же самого функционального результата. Точно так же DI1 и DI2 могут работать вместе для переноса функциональных возможностей интерфейсов I1 и I2 на фиг. 1C на новую операционную систему, обеспечивая тот же самый или аналогичный функциональный результат.
E. ПЕРЕЗАПИСЬ
В еще одном возможном варианте код динамически перезаписывают для замены функциональных возможностей интерфейса чем-то другим, что полностью достигает того же самого результата. Например, может существовать система, в которой сегмент кода, представленный на промежуточном языке (например, Microsoft IL, Java ByteCode и т.д.), предоставляют оперативному (JIT) компилятору или интерпретатору в среде выполнения (такой, которую обеспечивают с помощью структуры.Net, среды реального времени Java или других подобных сред реального времени). JIT компилятор может быть написан так, чтобы он динамически преобразовывал связь 1-ого сегмента кода с 2-м сегментом кода, т.е. адаптировал ее к другому интерфейсу, который может потребоваться 2-му сегменту кода (или исходному, или другому 2-му сегменту кода). Это показано на фиг. 1L и 1M. Как можно заметить на фиг. 1L, этот подход подобен описанному выше сценарию разъединения. Это можно было бы сделать, например, когда установленная базовая система приложений спроектирована так, чтобы осуществлять связь с операционной системой в соответствии с протоколом «Интерфейса 1», но затем операционная система переходит на использование другого интерфейса. JIT компилятор можно использовать для того, чтобы перенастроить “на лету” осуществление связи с помощью установленных базовых приложений к новому интерфейсу операционной системы. Как показано на фиг. 1M, этот подход динамической перезаписи интерфейса(ов) можно применять для динамического разложения на составные части, а также и для изменения интерфейса(ов).
Также следует отметить, что описанные выше сценарии достижения того же самого или аналогичного результата как интерфейс в альтернативных вариантах осуществления изобретения можно также комбинированно использовать различными способами, последовательно и/или параллельно, или с другим промежуточным кодом. Таким образом, представленные выше альтернативные варианты осуществления изобретения не являются взаимоисключающими, и их можно смешивать, отождествлять и объединять для создания тех же самых или аналогичных сценариев что и общие сценарии, представленные на фиг. 1B и 1C. Также следует отметить, что, как и с большинством логических структур программирования, существуют другие аналогичные способы достижения тех же самых или подобных функциональных возможностей интерфейса, которые могут быть не описаны в данном описании, но которые тем не менее представлены в рамках сущности и объема изобретения, т.е. следует отметить, что в основе ценности интерфейса лежат по меньшей мере частично функциональные возможности, представленные с помощью интерфейса, и преимущественные результаты, которые обеспечивают с помощью интерфейса.
Фиг. 2 показывает иллюстративный планшетный ПК 201, который может использоваться в соответствии с различными аспектами настоящего изобретения. Компьютер на фиг. 2 может включать в себя любые из особенностей, подсистем и функций в системе на фиг. 1. Планшетный ПК 201 включает в себя большую поверхность 202 отображения, например оцифровывающую плоскую панель отображения, предпочтительно экран жидкокристаллического дисплея (LCD), на котором отображают множество окон 203. Используя стилус 204, пользователь может выбирать, выделять и/или писать на оцифровывающей поверхности 202 отображения. Примеры подходящих оцифровывающих поверхностей 202 отображения включают в себя электромагнитные перьевые устройства ввода графической информации, такие как перьевые устройства ввода графической информации Mutoh или Wacom. Могут также использоваться другие виды перьевых устройств ввода графической информации, например оптические устройства ввода графической информации. Планшетный ПК 201 интерпретирует графический знак, сделанный с использованием стилуса 204, для управления данными, ввода текста, создания чертежей и/или выполнения обычных компьютерных прикладных задач, таких как электронные таблицы, программы обработки текстов и т.п.
Стилус 204 может быть оборудован одной или большим количеством кнопок или других приспособлений для увеличения его возможностей выбора. В одном из вариантов осуществления изобретения стилус 204 может быть реализован как «карандаш» или «перо», в котором один конец является элементом записи, а другой конец является «ластиком», и который при перемещении по дисплею указывает, какие части изображения необходимо стереть. Могут использоваться другие виды устройств ввода данных, такие как «мышь», шаровой манипулятор («трекбол») или подобные устройства. Дополнительно собственный палец пользователя можно применять в качестве стилуса 204 и использовать для выбора или указания частей отображаемого изображения на сенсорном или чувствительном к приближению дисплее. Следовательно, термин «пользовательское устройство ввода данных», который используется в данной работе, имеет широкое определение и охватывает множество разновидностей известных устройств ввода данных, таких как стилус 204. Зона 205 показывает зону обратной связи, или зону контакта, которая дает возможность пользователю определять, когда стилус 204 контактирует с поверхностью 202 отображения.
В различных вариантах осуществления изобретения система обеспечивает платформу «чернил» как набор сервисов COM (объектной модели программных компонентов), которые приложение может использовать для ввода, управления и хранения «чернил». Один из сервисов предоставляет приложению возможность считывать и записывать «чернила», используя раскрытые представления «чернил». Платформа «чернил» может также включать в себя язык разметки, в том числе и расширяемый язык разметки (XML). Дополнительно система может использовать DCOM (распределенную объектную модель программных компонентов) в качестве другого воплощения. Могут использоваться все дополнительные воплощения, которые включают в себя модель программирования Win32 и модель программирования.Net от Microsoft Corporation.
Автоматическое заполнение и рукописный ввод
Процессы автоматического заполнения (также известные как процессы автоматической подсказки), списки последних по времени использования файлов (адресов) (MRU) и списки наиболее часто используемых файлов (адресов) (MFU) являются популярными особенностями и используются многими приложениями и в некоторых полях в различных оболочках операционной системы. Одним из достоинств этих списков является облегчение пользователям ввода трудного для запоминания нестандартного текста, такого как адреса электронной почты, URL (унифицированные указатели информационных ресурсов) и имена файлов. Данное достоинство еще важнее для пользователей, которые вводят адреса электронной почты, URL или имена файлов с использованием рукописного ввода, потому что распознавание рукописной информации обычно происходит очень плохо для таких слов, не содержащихся в словаре, что делает процесс ввода таких данных еще более утомительным.
Аспекты изобретения относятся к объединению автоматической подсказки (а также автоматического заполнения) различных приложений с рукописным вводом. Из-за этого объединения пользователь может получить возможность более легкого использования, повышенную производительность и удовлетворение от использования и рукописного ввода, и приложения, с которым он взаимодействует.
Фиг. 3 показывает иллюстративный пример аспектов изобретения. В данном случае приложение 301 включает в себя пользовательский интерфейс 302. Пользователь вводит информацию (вводимую пользователем информацию 303). Приложение может включать в себя средство 304 обработки вводимой информации, которое направляет 305 информацию для отображения в указанный пользовательский интерфейс 302. Следует отметить, что вводимую пользователем информацию можно обрабатывать с помощью приложения 301 или с помощью панели 307 приема рукописного текста. Ввод пользователем информации 303 непосредственно в приложение 301 показан пунктирными линиями, поскольку пользователям, возможно, не всегда нужно вводить информацию отдельно в приложение 301. В некоторых ситуациях, например при использовании планшетного компьютера типа «грифельной доски» или компьютера с перьвым вводом с ограниченным количеством клавиш или без них, приложение 301 может принимать вводимую с помощью стилуса информацию, или пользователь может вводить информацию с использованием только панели 307 приема рукописного текста, таким образом обходя ввод информации непосредственно в приложение 301.
Пользователь или приложение 301 могут обращаться к панели 307 приема рукописного текста. Панель 307 приема рукописного текста может включать в себя интерфейс и процессы для приема по меньшей мере вводимой рукописной информации в форме «электронных чернил», созданных с помощью взаимодействия стилуса и устройства ввода графической информации. Следует признать, что панель 307 приема рукописного текста может также принимать информацию другого вида, включая информацию, вводимую с клавиатуры (реальной или отображаемой) и вводимую с помощью «мыши», посредством описанной выше программной клавиатуры и/или посредством использования пользователем «мыши» для создания «чернил». Следует признать, что панель 307 приема рукописного текста можно использовать и с активными, и с пассивными устройствами ввода графической информации. Панель 307 приема рукописного текста может включать в себя, не ограничиваясь, различные виды отображения вводимой информации, среди которых по меньшей мере один из следующих видов: ввод в строку (отображают направляющую линию, на которой создают «чернила»), ввод в рамку (с отдельной имеющей границы зоной для каждого вводимого знака или символа), ввод с клавиатуры (программной клавиатуры) или обычной пустой зоны ввода информации. Примером панели 307 приема рукописного текста по меньшей мере с некоторыми из этих возможностей является TIP (панель ввода графической информации) корпорации Microsoft Corporation из г. Redmond, WA.
Пользователь затем вводит информацию 303 (например, пишет от руки «чернилами») в панели 307 приема рукописного текста. Панель 307 приема рукописного текста пытается распознать вводимую информацию 303 и направляет 308 результаты распознавания к средству 309 автоматического заполнения. Средство 309 автоматического заполнения предлагает пользователю предполагаемые варианты автоматического заполнения в ответ на распознанную информацию, направленную к средству 309 автоматического заполнения от панели 307 приема рукописного текста. Пользователь затем выбирает один из предложенных вариантов через ввод 310, и результат выбора отправляют 311 к приложению 301 для отображения в пользовательском интерфейсе 302. После того, как выбор сделан, средство 309 автоматического заполнения закрывает пользовательский интерфейс для списка предлагаемых вариантов.
Аспекты изобретения описывают средство 309 автоматического заполнения как расположенное отдельно от панели 307 приема рукописного текста. В альтернативных аспектах изобретения средство 309 автоматического заполнения может быть интегрировано в панель 307 приема рукописного текста. В другом дополнительном аспекте панель 307 приема рукописного текста может быть интегрирована в средство 309 автоматического заполнения. В этих двух последних аспектах пользователю предоставляют возможность открывать одну панель 307 приема рукописного текста и одно средство 309 автоматического заполнения через управление пользовательским интерфейсом другого.
Далее приведен пример того, как пользователь может использовать список автоматического заполнения для направления информации к пользовательскому интерфейсу. Сначала пользователь может ввести «www» в панель 307 приема рукописного текста. После этого средство 309 автоматического заполнения может представить список предполагаемых автоматических окончаний, включающий в себя, например:
http://www.
https: // www.
ftp://www.
Пользователь может продолжать добавлять информацию посредством панели 307 приема рукописного текста (где список автоматического заполнения будет заново заполнен через некоторое время) или может выбирать элемент из списка автоматического заполнения. Когда пользователь выбирает одну из записей списка автоматического заполнения, вариант выбора (или указание, что выбор был сделан) посылают к приложению 301 и отображают в пользовательском интерфейсе 302. В данном случае содержимое в панели 307 приема рукописного текста может быть очищено, когда пользователь выбрал один из элементов из списка автоматического заполнения. Пользователь может продолжать добавлять информацию через панель 307 приема рукописного текста, и новую распознанную информацию передают к списку автоматического заполнения, и вариант выбора пользователем из предполагаемых данных отправляют к приложению 301.
В качестве альтернативного варианта панель 307 приема рукописного текста и средство 309 автоматического заполнения могут обмениваться информацией 308, 312 до тех пор, пока пользователь не будет удовлетворен результатами. Затем панель 307 приема рукописного текста направляет 313 результаты обмена между панелью 307 приема рукописного текста и средством 309 автоматического заполнения к приложению 301 для отображения в пользовательском интерфейсе 302. В качестве примера используют указанную выше запись «www». Подобно указанному выше, пользователь вводит рукописную информацию 303, которую распознают с помощью панели 307 приема рукописного текста как «www». Средство 309 автоматического заполнения представляет список предполагаемых окончаний (например, http://www, и т.п.). Когда пользователь выбирает предполагаемое окончание через пользовательский ввод 310, предполагаемое окончание возвращают по маршруту 312 к панели 307 приема рукописного текста, где распознанные результаты в панели 307 приема рукописного текста заменяют выбранным окончанием. Пользователь может затем добавлять дополнительную информацию к предполагаемому окончанию, находящемуся в панели 307 приема рукописного текста. Наконец, после того, как строка заполнена, результат можно направить (вручную или автоматически через использование запланированного по времени автоматического отправления строки) по маршруту 313 к приложению 301 для отображения в пользовательском интерфейсе 302.
Наконец, в качестве еще одного альтернативного варианта приложение 314 может направлять информацию из пользовательского интерфейса 302 к средству 309 автоматического заполнения для использования в качестве исходной информации для списка предположений. Эта исходная информация может иногда упоминаться как первая информация. Результаты 308 распознавания от панели 307 приема рукописного текста затем можно объединять с содержимым пользовательского интерфейса 302 как информацию, на которую средство 309 автоматического заполнения отвечает, представляя варианты предполагаемого содержимого. Выбранный вариант предполагаемого содержимого от средства 309 автоматического заполнения можно затем отправлять к приложению 301 по любому из описанных выше маршрутов (311 или 312/313).
Панель 307 приема рукописного текста может взять на себя процесс автоматического заполнения и формировать список предлагаемых вариантов автоматического заполнения. Альтернативно панель 307 приема рукописного текста может влиять на расположение списка автоматического заполнения, который предоставляет средство 309 автоматического заполнения. Это можно делать через программный интерфейс приложения для средства 309 автоматического заполнения.
Фиг. 4 показывает приложение 401 с полем 402 ввода информации. Пользователь может вводить рукописными «чернилами» через панель 403 приема рукописного текста с помощью списка 404 автоматического заполнения, отображаемого около панели 403 приема рукописного текста. Список автоматического заполнения можно генерировать с помощью средства 309 автоматического заполнения.
Информация, которую представляют в списке автоматического заполнения, может быть различной в зависимости от приложения. Например, для интернет-браузера список автоматического заполнения может включать в себя информацию, относящуюся к адресам «всемирной паутины» или идентификаторам домена верхнего уровня. Для приложений электронной почты список автоматического заполнения может включать в себя информацию, относящуюся к адресам электронной почты из адресной книги электронной почты пользователя.
Приложения могут переставлять свои списки автоматического заполнения так, чтобы их вид соответствовал TIP вместо текстового поля приложения. Нижеследующие положения представляют собой ключевые моменты, определяющие, как может быть расположен список автоматического заполнения приложения.
- Чтобы не появляться под рукой пользователя, списки автоматического заполнения могут появляться выше верхнего края панели приема рукописного текста, если они могут размещаться там, не уходя за верхний край экрана. Нижний край списка автоматического заполнения может касаться верхнего края зоны для записи панели приема рукописного текста. Если список не может помещаться выше панели приема рукописного текста, то он может располагаться ниже нижнего края панели приема рукописного текста. В данном случае верхний край списка автоматического заполнения может касаться нижнего края зоны для записи панели приема рукописного текста.
- Когда панель приема рукописного текста расширяют так, чтобы она включала в себя больше 1 строки «чернил», список автоматического заполнения можно располагать относительно текущей строки, на которой пишет «чернилами» пользователь. В этом случае список автоматического заполнения может вести себя по отношению к верхней и нижней границам строки так, как будто они являются верхней и нижней границей панели приема рукописного текста. Альтернативно список автоматического заполнения может всегда появляться относительно верхней или нижней строки зоны для записи.
- Списки автоматического заполнения могут появляться с выравниванием по левому краю над первым пробелом в конце строки на панели приема рукописного текста. В версии панели приема рукописного текста с разбивкой на строки, список автоматического заполнения может появляться так, чтобы левый край списка автоматического заполнения был выровнен с правым краем последнего объекта «чернил» на последней строке. В режиме ввода в рамку списка автоматического заполнения список автоматического заполнения может появляться так, чтобы левый край списка автоматического заполнения был выровнен с левым краем первого пустого поля в конце строки. При любом внешнем виде, если список невозможно выровнять по левой границе, не уходя за правый край экрана, то список выравнивают вправо относительно правого края экрана.
- Когда отображают список автоматического заполнения, и пользователь нажимает «пером» вне списка автоматического заполнения, список автоматического заполнения может быть скрыт.
- Когда делают исправление последнего слова в панели приема рукописного текста, список автоматического заполнения может быть обновлен и повторно показан.
Когда пользователь использует аппаратную или программную клавиатуру, список автоматического заполнения приложения может быть расположен относительно поля ввода текста, а не панели приема рукописного текста. В этих случаях список автоматического заполнения может выглядеть и функционировать так же, как на “рабочем столе”. Альтернативно, когда используют программную клавиатуру, список автоматического заполнения может быть расположен относительно программной клавиатуры. Одним из преимуществ расположения списка автоматического заполнения около программной клавиатуры является ограниченность движения, необходимого для перемещения от одного к другому, что делает взаимодействие с обоими объектами проще для пользователя.
Список автоматического заполнения может появляться сразу после того, как распознавание предварительно выполнено, и результаты распознавания обновлены. При режиме ввода информации в рамку панели приема рукописного текста список автоматического заполнения обновляют после того, как распознан каждый символ. При режиме ввода информации в строку панели приема рукописного текста список автоматического заполнения обновляют после того, как распознан фрагмент.
Фиг. 5 показывает различные взаимосвязи между компонентами в соответствии с аспектами настоящего изобретения. Панель 501 приема рукописного текста включает в себя средство 503 управления окном рукописного ввода, которое обменивается информацией с блоком управления 504 состояния. Блок управления 504 состояния связан с архивом 505 состояний, который связан с блоком управления возможностью программирования. Информацию о состоянии посылают, а результаты принимают. Блок 506 управления возможностью программирования посылает информацию о состоянии к процессу 502 средства автоматического заполнения.
Процесс 502 средства автоматического заполнения включает в себя объект 507 панели приема рукописного текста с блоком управления 508 состояния и клиентом 509 автоматического заполнения. Клиент 509 автоматического заполнения обменивается информацией со средством 510 автоматического заполнения.
В данной работе панель 501 приема рукописного текста вызывает средство 510 автоматического заполнения и направляет результат распознавания от панели 501 приема рукописного текста. Средство 510 автоматического заполнения в процессе 502 средства автоматического заполнения генерирует список автоматического заполнения с содержимым для отображения пользователю.
Далее описано возможное определение программного интерфейса приложения, который дает возможность приложению или панели приема рукописного текста обращаться к списку автоматического заполнения и вводить информацию.
Клиент автоматического заполнения может иметь интерфейс клиента автоматического заполнения, который подвергается воздействию средства 510 автоматического заполнения.
Интерфейс клиента автоматического заполнения может включать в себя способ обеспечения представления информации, который регистрирует средство автоматического заполнения, которое будет зарегистрировано для клиента автоматического заполнения. Способ может включать в себя указатель на интерфейс средства автоматического заполнения, который будет зарегистрирован для клиента автоматического заполнения.
Клиент автоматического заполнения может подобным образом иметь способ обеспечения отсутствия представления информации, который отключает регистрацию интерфейса средства автоматического заполнения для клиента автоматического заполнения.
Может также существовать пользовательский интерфейс выбора, который может выполняться одним из двух способов. Во-первых, если информацию отправляют с помощью этого способа, то вариант выбора пользователя может быть отправлен назад к панели приема рукописного текста для дополнительной информации, которая будет добавлена к нему. Во-вторых, если никакой информации не отправляют с помощью этого способа, то он может использоваться для уведомления о том, что пользователь сделал выбор.
API может также включать в себя определение предпочтительного прямоугольника для отображения списка автоматического заполнения. Способ может включать в себя ссылку на прямоугольник в аппаратных координатах устройства, указывающий предпочитаемое расположение средства обеспечения и размер пользовательского интерфейса списка автоматического заполнения, ссылку на прямоугольник в аппаратных координатах устройства, указывающий расположение и размер активного поля, ссылку на прямоугольник, изменяемый клиентом автоматического заполнения, основываясь на текущем состоянии панели приема рукописного текста и предпочтительном расположении и размере списка автоматического заполнения, которые определяет список автоматического заполнения.
API может включать в себя запрос на отображение пользовательского интерфейса. Это вызов, который производит средство автоматического заполнения, когда оно собирается отображать ПИ автоматического заполнения. Клиент автоматического заполнения может изменять предпочтительный прямоугольник средства.
Это вызов, который средство автоматического заполнения производит, когда оно собирается отобразить ПИ автоматического заполнения.
Кроме того, средство автоматического заполнения может включать в себя следующие интерфейсы:
способ обновления ждущего обработки текста, который обновляет ждущий обработки текст, используемый для генерации списка автоматического заполнения. Этот текст не будет содержать текст, уже вставленный в активное поле, и средство автоматического заполнения отвечает за учет текста в текущем поле и результата выбора для генерации списка автоматического заполнения. Этот способ может также определять символы, которыми следует отображать список автоматического заполнения. Этот способ может вызывать средство для отображения ПИ списка автоматического заполнения.
Способ отображения может использоваться для отображения или скрытия списка автоматического заполнения.
Последующие расширения могут использоваться или могут не использоваться с аспектами настоящего изобретения.
Приложение может направлять к панели приема рукописного текста список автоматического заполнения как текст, а панель приема рукописного текста содержит и формирует список автоматического заполнения относительно панели приема рукописного текста, заполненный значениями автоматического заполнения, которые обеспечивают с помощью данного приложения. Формируемый панелью приема рукописного текста список может свободно перемещаться выше маршрута перемещения переставленного списка приложения, или он может быть полностью интегрирован в ПИ панели приема рукописного текста. Альтернативно список автоматического заполнения может не перемещаться, а вместо этого оставаться в своем текущем расположении. Дополнительно приложение, операционная система или пользователь могут помещать список автоматического заполнения в любое место.
Приложению можно передавать два или большее количество лучших результатов распознавания, и приложение генерируют список автоматического заполнения, основываясь на различных возможных вариантах распознавания.
Можно объединять автоматическое заполнение для полей с предсказанием обычного текста так, чтобы в пределах одного списка пользователь получал и автоматическое заполнение URL или адреса электронной почты, и предсказание словарных слов, которые в них можно было бы вводить (независимо от того, печатали ли они когда-либо это слово прежде или нет). Целью является расширение в будущем текущих возможностей применения автоматического заполнения на обычный текст.
Можно разбирать URL на части или стандартные блоки, которые можно использовать для перемещения к адресам более высокого или низкого уровня по отношению к адресам, которые пользователь посещал ранее. Используя этот способ, адресом высокого уровня для автоматического заполнения будет www.cnn.com, даже если пользователь никогда не был там, но если пользователь был на www.cnn.com/currentnews. Это можно сделать путем включения в интерфейс IAutoCompleteResults способа AdjustAutoCompleteList. Этот способ позволяет панели приема рукописного текста изменять записи списка, которые приложение будет отображать, до их отображения. Дополнительная информация показана на фиг. 6 и описана далее:
способ AdjustAutocompleteList () вызывают с помощью средства обеспечения списка автоматического заполнения в объект панели перьевого ввода. Объект панели перьевого ввода может содержать завершенный и заключенный в рамку текст подсказки, сохраненный при вызове этого способа. В пределах этого способа по умолчанию панель перьевого ввода будет искать первое появление завершенной строки подсказки завершенного текста подсказки в пределах данной строки автоматического заполнения и обрезать завершенную строку подсказки строки автоматического заполнения следующим образом:
- завершенный текст подсказки = «AAA»
- строка автоматического заполнения = «000AAABBBCCC»
- результирующая строка после обрезки завершенного текста подсказки = «BBBCCC»
- любую часть строки автоматического заполнения до завершенного текста подсказки (в указанном выше примере «000») также обрезают.
Когда область действия текущей вводимой информации устанавливают в IS_URL, обрезку делают определенным способом. Определение частей URL задают так, как показано на фиг. 6.
Дополнительно список автоматического заполнения может использоваться для адресов Интернета следующим образом.
Строкой протокола является часть строки, за которой следует «//».
Именем главного компьютера является часть строки, которая следует за строкой протокола и за которой следует точка.
Именем домена верхнего уровня является последняя часть строки после символа “точка” перед любым символом «слэш» в пределах строки.
Когда имя главного компьютера и имя домена верхнего уровня существуют, имя домена второго уровня является частью строки, отделенной точкой, слева от имени домена верхнего уровня. Если существует множество сегментов этой части, отделенных символом «точка», между именем главного компьютера и именем домена верхнего уровня, то их рассматривают как имя домена 2-го или более высокого уровня. При внешнем виде с рамкой могут не различать имя домена 2-го или более высокого уровня, и их могут обрабатывать как одну часть.
Если существует домен верхнего уровня, то
- именем файла является часть строки после последнего символа «слэш» после разделителя протокола,
- часть строки между именем файла и первым символом «слэш» после разделителя протокола является каталогом.
Если не существует домена верхнего уровня:
- именем файла является часть строки после последнего символа «слэш»,
- каталогом является часть строки между именем файла и разделителем протокола.
При режиме ввода в рамку можно разбивать строки на следующие элементы:
- строка протокола с разделителем протокола,
- имя главного компьютера с последующим разделителем,
- имя домена с последующим разделителем,
- каталог и имя файла.
После того как все заполненные строки автоматического заполнения разбиты и изменены, при внешнем виде с рамкой из списка можно удалять любые дублированные элементы.
Затем система может запускать индексирование строки отображения. Индекс начального символа в полной строке автоматического заполнения, которая будет возвращена из корректирования списка автоматического заполнения, определяют точно тем же самым способом, как список автоматического заполнения по умолчанию. Это может быть окончание первого появления завершенного текста подсказки в пределах всей строки.
Для определения индекса окончания строки отображения следующие этапы определяют расположение конечного символа в строке автоматического заполнения, которую будут возвращать.
a. Если текст подсказки заканчивается до разделителя протокола в полной строке (исключая второй слэш разделителя протокола), то расположение конечного символа находится в конце строки протокола, включающей в себя разделитель протокола.
b. Если (a) является ложью и текст подсказки заканчивается до разделителя после имени главного компьютера в полной строке, то расположение конечного символа находится в конце имени главного компьютера, включающего в себя последующий разделитель.
c. Если (b) является ложью и текст подсказки заканчивается до разделителя после имени домена верхнего уровня в полной строке, то расположение конечного символа находится в конце имени домена верхнего уровня, включающего в себя последующий разделитель.
d. Если (c) является ложью и текст подсказки заканчивается в пределах каталога или имени файла в полной строке (которые включают в себя разделитель между именем домена и именем каталога), то расположение конечного символа находится в конце всей строки.
При альтернативном подходе средство автоматического заполнения может управлять всей визуализацией списка автоматического заполнения. Например, средство автоматического заполнения может принимать указание о расположении (относительно другого отображаемого содержимого или абсолютное расположение) панели приема рукописного текста и расположении списка автоматического заполнения, основываясь на расположении панели приема рукописного текста. В другом примере средство автоматического заполнения может не принимать никакого указания относительно расположения панели ввода рукописной информации и может располагать список автоматического заполнения в заданном месте (около одной стороны экрана, или в центре, или в другом подобном месте) или может располагать список автоматического заполнения около другого отображаемого содержимого (например, отдельно, с перекрытием или поверх пользовательского интерфейса приложения, к которому будут посылать выбранное содержимое из списка автоматического заполнения) или поверх его верхней части.
Настоящее изобретение описано с точки зрения предпочтительных и иллюстративных вариантов его осуществления. Многочисленные другие варианты осуществления изобретения, модификации и разновидности в пределах сущности и объема прилагаемой формулы изобретения могут быть предусмотрены специалистами на основе анализа данного описания.