Списки автоматического заполнения и рукописный ввод
Иллюстрации
Показать всеИзобретение относится к системе и способу для использования рукописного ввода при вводе с использованием списка автоматического заполнения. Техническим результатом является улучшение возможностей автоматического заполнения по отношению к рукописному вводу. Система содержит интерфейс, который принимает текст, интерфейс, который принимает рукописные чернила, посредством ввода пользователем информации в панель приема рукописного текста в форме электронных чернил, создаваемых взаимодействием стилуса и устройства ввода графической информации, панель приема рукописного текста пытается распознать вводимую информацию и отсылает результаты распознавания на средство автоматического заполнения как распознанный текст, интерфейс, имеющий средство автоматического заполнения, которое предоставляет список автоматического заполнения, содержащий список предполагаемых окончаний на основе упомянутого распознанного текста, список автоматического заполнения варьируется приложением так, что список автоматического заполнения обновляется после распознавания каждого символа текста и распознавания сегмента текста. 3 н. и 9 з.п. ф-лы, 19 ил.
Реферат
Уровень техники
Списки автоматического заполнения в настоящее время используются в пользовательских интерфейсах (ПИ). Например, когда пользователь вводит информацию в строку адреса интернет-браузера, пользователю могут быть представлены предполагаемые варианты окончания вводимых пользователем данных. В таких системах ввода пользователь может начинать печатать «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, θ) и другие методики, которые известны из предшествующего уровня техники. «Электронные чернила» могут включать в себя отображения свойств реальных чернил, таких как давление, угол наклона, скорость, цвет, размер пера и непрозрачность чернил. «Электронные чернила» могут дополнительно включать в себя другие свойства, включая порядок того, как «чернила» были нанесены на странице (растровый образец слева направо затем вниз для большинства западных языков), временные метки (указание, когда «чернила» были нанесены), указание автора «чернил» и исходного устройства (по меньшей мере одно из двух: или идентификатора компьютера, на котором были нарисованы «чернила», или идентификатор пера, используемого для нанесения «чернил») среди другой информации.
Среди описанных выше характеристик прежде всего используют очередность штрихов во времени, и штрих, как последовательность координат. Могут также использоваться все другие характеристики.
Термин | Определение |
«Чернила» | Последовательность или набор штрихов со свойствами. Последовательность штрихов может включать в себя штрихи в упорядоченной форме. Последовательность можно упорядочивать по времени ввода или по месту, где на странице появляются штрихи, или при коллективной работе - по автору «чернил». Возможно другое упорядочивание. Набор штрихов может включать в себя последовательности штрихов или неупорядоченные штрихи, или любую их комбинацию. Дополнительно некоторые свойства могут быть уникальными для каждого штриха или точки в штрихе (например, давление, скорость, угол наклона и т.п.). Эти свойства могут храниться на уровне штриха или точки, а не на уровне «чернил». |
Объект «чернила» | Структура данных, в которой хранятся «чернила» со свойствами или без свойств. |
Штрих | Последовательность или набор введенных точек. Например, при визуализации последовательность точек может быть связана с линиями. Альтернативно штрих может быть представлен как точка и вектор в направлении следующей точки. Вкратце, понятие штриха охватывает любое представление точек или сегментов, относящихся к «чернилам», независимо от основного представления точек и/или того, что соединяет точки. |
Документ | Любой электронный файл, который имеет просматриваемое представление и содержимое. Документ может включать в себя веб-страницу, документ программы обработки текстов, страницу или блок с заметками, электронную таблицу, визуальное представление, запись базы данных, файлы изображений и их комбинации. |
Визуализировать, или визуализация, или визуализиро-ванный | Процесс определения того, как должна отображаться информация (которая включает в себя текст, графические символы и/или «электронные чернила»): на экране, в печатном виде или каким-либо другим способом. |
Машиночитаемый носитель | Любые доступные носители, к которым может обращаться пользователь компьютерной системы. Для примера, а не в качестве ограничения, «машиночитаемые носители» могут включать в себя компьютерные носители данных и средства связи. |
Компьютерные носители данных | «Компьютерные носители данных» включают в себя энергозависимые и энергонезависимые, съемные и несъемные носители, реализованные с помощью любого способа или технологии для хранения информации, такой как считываемые компьютером команды, структуры данных, программные модули или другие данные. «Компьютерные носители данных» включают в себя, не ограничиваясь ими, оперативную память (ОП), постоянное запоминающее устройство (ПЗУ), электрически стираемое программируемое постоянное запоминающее устройство (ЭСППЗУ), флэш-память или память другой технологии, компакт-диски (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». Это можно сделать, например, когда существует установленная базовая система