Альтернативы анализа в контекстных деревьях

Иллюстрации

Показать все

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

Реферат

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

Аспекты настоящего изобретения относятся к вычислительным системам. В частности, аспекты настоящего изобретения относятся к обработке альтернатив от систем распознавания.

Описание предшествующего уровня техники

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

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

Существует потребность в улучшенной системе и процессе синтаксического разбора для представления альтернатив и связи их с общей древовидной структурой чернил.

Сущность изобретения

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

Перечень чертежей

Настоящее изобретение иллюстрируется посредством примера и не ограничивается прилагаемыми фигурами, на которых одинаковые ссылочные позиции указывают аналогичные элементы и на которых:

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

Фиг.1В-1М - среда компьютера общего назначения, поддерживающая один или несколько аспектов настоящего изобретения;

Фиг.2 - иллюстративный пример планшетного компьютера согласно аспектам настоящего изобретения;

Фиг.3 - пример электронных чернил согласно аспектам настоящего изобретения;

Фиг.4 - иллюстративный пример контекстного дерева согласно аспектам настоящего изобретения;

Фиг.5 - пример решетки согласно аспектам настоящего изобретения;

Фиг.6-7 - решетки выбора согласно аспектам настоящего изобретения;

Фиг.8-9 - решетки согласно аспектам настоящего изобретения;

Фиг.10 - зависимости объектов согласно аспектам настоящего изобретения;

Фиг.11 - иллюстративные процессы создания решетки согласно аспектам настоящего изобретения;

Фиг.12А-16 и 18 - контекстные деревья и альтернативы согласно аспектам настоящего изобретения;

Фиг.17 - электронные чернила согласно аспектам настоящего изобретения.

Подробное описание изобретения

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

Настоящий документ разделен на разделы, чтобы оказать помощь читателю. Данные разделы включают в себя: Обзор, Характеристики чернил, Термины, Вычислительную среду общего назначения, Представление альтернатив, Объекты и зависимости объектов, Интерфейсы прикладного программирования, Создание решетки и Примеры.

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

Обзор

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

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

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

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

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

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

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

Характеристики чернил

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

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

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

Термины

Термин Определение
Чернила Последовательность или набор штрихов со свойствами. Последовательность штрихов может включать в себя штрихи в упорядоченной форме. Последовательность может упорядочиваться по времени захвата или по тому, где штрихи появляются на странице, или в объединенных случаях автором чернил. Возможны другие порядки. Набор штрихов может включать в себя последовательности штрихов, или неупорядоченные штрихи, или любую их комбинацию. Далее, некоторые свойства могут быть уникальными для каждого штриха или точки в штрихе (например, давление, скорость, угол и т. п.). Эти свойства могут запоминаться на уровне штриха или точки, и не на уровне чернил.
Объект чернил Структура данных, хранящая чернила со свойствами или без них.
Штрих Последовательность или набор захваченных точек. Например, при визуализации последовательность точек может соединяться прямыми линиями. Альтернативно, штрих может быть представлен как точка и вектор в направлении следующей точки. Вкратце, предполагается, что штрих охватывает любое представление точек или отрезков, относящихся к чернилам, независимо от лежащего в основе представления точек и/или того, что соединяет точки.
Документ Любой электронный файл, который имеет видимое представление и содержимое. Документ может включать в себя веб-страницу, документ по обработке текста, страницу для записей или блокнот, электронную таблицу, визуальную презентацию, запись в базе данных, файлы с изображением и их комбинации.
Дерево узлов контекста Структура данных, которая описывает зависимость между элементами документа, которые были уже проанализированы, и элементами документа, которые должны быть еще проанализированы. Структура данных, в необязательном порядке, может дополнительно включать в себя нечернильную информацию (например, набранный на клавиатуре текст, изображения, диаграммы и т. п.). Эта нечернильная информация может использоваться для того, чтобы помогать при синтаксическом разборе распознавания чернильного содержимого. Далее, нечернильное содержимое может аннотироваться чернилами, когда используется механизм аннотирования. Так как новое содержимое является полезным для существующего содержимого, существующее содержимое предоставляет контекст для новой информации.
Визуализировать, или визуализируемый, или визуализация Процесс определения того, как информация (включая текст, графику и/или электронные чернила) должна отображаться, на экране ли, или печататься, или выводиться некоторым другим образом.
Считываемый компьютером носитель Любой доступный носитель, к которому может обращаться пользователь на компьютерной системе. В качестве примера, и не ограничения, «считываемый компьютером носитель» может включать в себя носитель данных компьютера и среду передачи данных. «Носитель данных компьютера» включает в себя энергозависимые и энергонезависимые, съемные и несъемные носители, выполненные по любому методу или технологии для хранения информации, такой как считываемые компьютером инструкции, структуры данных, программные модули или другие данные. «Носители данных компьютера» включают в себя, но не в ограничительном смысле, оперативное запоминающее устройство (ОЗУ), постоянное запоминающее устройство (ПЗУ), электронно-стираемое программируемое постоянное запоминающее устройство (ЭСППЗУ), флэш-память или память другой технологии, компакт-диск, цифровые многофункциональные диски (DVD) или другие оптические запоминающие устройства, магнитные кассеты, магнитную ленту, запоминающее устройство на магнитных дисках или другие магнитные запоминающие устройства, или любой другой носитель, который может использоваться для хранения требуемой информации и к которому может обращаться компьютер. «Среда передачи данных» обычно воплощает считываемые компьютером инструкции, структуры данных, программные модули или другие данные в модулированном данными сигнале, таком как несущая волна или другой транспортный механизм, и включает в себя любые среды доставки информации. Термин «модулированный данными сигнал» означает сигнал, одна или несколько характеристик которого устанавливаются или изменяются так, чтобы обеспечить кодирование информации в этом сигнале. В качестве примера, и не ограничения, среды передачи данных включают в себя проводные среды, такие как проводная сеть или прямое проводное соединение, и беспроводные среды, такие как акустические, радиочастотные (РЧ), инфракрасные или другие беспроводные среды. Комбинации любых из вышеприведенных сред и носителей также охватываются понятием «считываемый компьютером носитель».

Вычислительная среда общего назначения

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

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

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

С ссылкой на фиг.1, примерная система для реализации изобретения включает в себя вычислительное устройство общего назначения в виде компьютера 110. Компоненты компьютера 110 могут включать в себя, но не в ограничительном смысле, блок 120 обработки данных, системную память 130 и системную шину 121, которая соединяет различные компоненты системы, включая системную память, с блоком 120 обработки данных. Системная шина 121 может быть любой из нескольких типов шинных структур, включая шину памяти или контроллер памяти, периферийную шину и локальную шину, используя любую из многочисленных шинных архитектур. В качестве примера, и не ограничения, такие архитектуры включают в себя шину архитектуры промышленного стандарта (ISA), шину микроканальной архитектуры (MCA), шину расширенной ISA (EISA), локальную шину Ассоциации по стандартам в области видеоэлектроники (VESA) и шину межсоединений периферийных компонентов (PCI), также известную как шина расширения.

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

Системная память 130 включает в себя носитель данных компьютера в виде энергозависимой и/или энергонезависимой памяти, такой как постоянное запоминающее устройство (ПЗУ) 131 и оперативное запоминающее устройство (ОЗУ) 132. Базовая система 133 ввода/вывода (BIOS), содержащая базовые процедуры, которые способствуют переносу информации между элементами в компьютере 110, например, во время запуска, обычно хранится в ПЗУ 131. ОЗУ 132 обычно содержит данные и/или программные модули, к которым осуществляется непосредственный доступ и/или которые в настоящий момент обрабатываются блоком 120 обработки данных. В качестве примера, и не ограничения, на фиг.1 изображена операционная система 134, программы 135 приложений, другие программные модули 136 и данные 137 программ.

Компьютер 110 также может включать в себя другие съемные/несъемные, энергозависимые/энергонезависимые носители данных компьютера. Только в качестве примера, на фиг.1 изображен накопитель 141 на жестких дисках, который считывает или записывает на несъемные энергонезависимые магнитные носители, магнитный дисковод 151, который считывает или записывает на съемный энергонезависимый магнитный диск 152, и оптический дисковод 155, который считывает или записывает на съемный энергонезависимый оптический диск 156, такой как компакт-диск или другой оптический носитель. Другие съемные/несъемные, энергозависимые/энергонезависимые носители данных компьютера, которые могут использоваться в примерной операционной среде, включают в себя, но не в ограничительном смысле, кассеты с магнитной лентой, карты флэш-памяти, цифровые многофункциональные диски, цифровую видеоленту, твердотельное ОЗУ, твердотельное ПЗУ и т. п. Накопитель 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. В дополнение к монитору, компьютеры также могут включать в себя другие периферийные устройства вывода, такие как громкоговорители 197 и принтер 196, которые могут подключаться при помощи периферийного интерфейса 195 вывода.

Компьютер 110 может работать в сетевой среде, используя логические соединения с одним или несколькими удаленными компьютерами, такими как удаленный компьютер 180. Удаленным компьютером 180 может быть персональный компьютер, сервер, маршрутизатор, сетевой ПК, одноранговое устройство или другой общий сетевой узел, и он обычно включает в себя многие или все из элементов, описанных выше в отношении компьютера 110, хотя только запоминающее устройство 181 изображено на фиг.1. Логические соединения, изображенные на фиг.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) и т. п., и система может работать в конфигурации клиент-сервер, позволяющей пользователю извлекать web-страницы с web-сервера. Могут использоваться любые из многочисленных обычных web-браузеров для отображения и манипулирования данными на web-страницах.

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

Теоретически, интерфейс программирования может рассматриваться, в общем, как показано на фиг.1В или фиг.1С. На фиг.1В изображен интерфейс Interface1 в виде канала, по которому происходит передача первого и второго сегментов кода. На фиг.1С изображен интерфейс, содержащий объекты I1 и I2 интерфейса (которые могут быть или могут не быть частью первого и второго сегментов кода), которые дают возможность первому и второму сегментам кода системы передаваться при помощи носителя М. С учетом фиг.1С можно рассматривать объекты I1 и I2 интерфейса как отдельные интерфейсы одной и той же системы, и также можно считать, что объекты I1 и I2 плюс носитель М составляют интерфейс. Хотя на фиг.1В и 1С показан двунаправленный поток и интерфейсы на каждой стороне потока, определенные реализации могут иметь поток информации только в одном направлении (или отсутствие потока информации, как описано ниже) или могут иметь объект интерфейса только на одной стороне. В качестве примера, и не ограничения, термины, такие как интерфейс прикладного программирования (ИПП, API), точка входа, метод, функция, подпрограмма, удаленный вызов процедуры и интерфейс модели компонентных объектов (МКО, COM), охватываются определением интерфейса программирования.

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

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

А. Разложение на элементарные операции

Передача от одного сегмента кода к другому может осуществляться косвенно разбиением передачи на множество дискретных передач. Это схематически описывается на фиг.1D и 1Е. Как показано, некоторые интерфейсы могут описываться на языке делимых наборов функциональных возможностей. Таким образом, функциональные возможности интерфейса по фиг.1В и 1С могут быть разложены на элементарные операции для достижения такого же результата, точно так же, как можно математически получить 24, 2 умножив на 2, умножив на 3, умножив на 2. Следовательно, как изображено на фиг.1D, функция, представляемая интерфейсом Interface1, может быть разделена для преобразования передачи интерфейса на множества интерфейсов Interface1A, Interface1B, Interface1C и т. д., в то же время достигая такого же результата. Как изображено на фиг.1Е, функция, представляемая интерфейсом I1, может быть разделена на множество интерфейсов I1a, I1b, I1c и т. д., в то же время достигая такого же результата. Аналогично, интерфейс I2 второго сегмента кода, который принимает информацию от первого сегмента кода, может быть разложен на множество интерфейсов I2a, I2b, I2c и т. д. При разложении на элементарные операции количество интерфейсов, включенных в 1-й сегмент кода, необязательно совпадает с количеством интерфейсов, включенных во 2-й сегмент кода. В обоих случаях по фиг.1D и 1Е, функциональная сущность интерфейсов Interface1 и I1 остается такой же, что и на фиг.1В и 1С соответственно. Разложение на элементарные операции интерфейсов также может подчиняться ассоциативным, коммутативным и другим математическим свойствам, так что разложение на элементарные операции может быть трудным для распознавания. Например, порядок операций может не иметь значения, и, следовательно, функция, выполняемая интерфейсом, мо