УСТРАНЕНИЕ НЕОДНОЗНАЧНОСТИ ДИНАМИЧЕСКИХ КОМАНД
DISAMBIGUATION OF DYNAMIC COMMANDS

УРОВЕНЬ ТЕХНИКИ
Первое вычислительное устройство может быть выполнено с возможностью принимать входные данные, включающие в себя команды, которые должны выполняться вычислительным устройством и/или одним или более вторых вычислительных устройств. Однако, команды, которые могут приниматься первым вычислительным устройством и одним или более вторых вычислительных устройств, могут вступать в противоречие или конфликт. К сожалению, механизмы лишены умения обращаться с такими конфликтами. В самом деле, механизмы в целом лишены умения обращения, например, приоритезации конфликтующих грамматик.
ЧЕРТЕЖИ
Фиг. 1 - структурная схема примерной системы для управления многочисленными устройствами.
Фиг. 2 - схема примерной последовательности операций для устранения неоднозначности команд, принятых в центральном вычислительном устройстве.
Фиг. 3 - схема примерной последовательности операций для регистрации грамматики приложения в центральном компьютере, который выполнен с возможностью управлять многочисленными устройствами.
Фиг. 4 - схема примерной последовательности операций для выбора устройства для выполнения команды, принятой в центральном компьютере, который выполнен с возможностью управлять многочисленными устройствами.
Фиг. 5 - схема примерной последовательности операций для выбора экземпляра приложения для выполнения команды, принятой в центральном компьютере, который выполнен с возможностью управлять многочисленными устройствами.
ПОДРОБНОЕ ОПИСАНИЕ
ОБЗОР СИСТЕМЫ
Предлагается система, содержащая компьютер, причем компьютер содержит процессор и память, при этом, компьютер выполнен с возможностью принимать входные данные, включающие в себя по меньшей мере одно слово; определять, что входные данные заданы в качестве команды в множестве грамматик, каждая из двух или более грамматик является ассоциативно связанной с соответственным приложением из множества приложений; выбирать одно из приложений, к которому следует применить команду, согласно состоянию приложения в отношении человеко-машинного интерфейса, ассоциативно связанного с приложением; и выдавать команду в выбранное одно из приложений. Причем каждое из приложений включено в вычисленное устройство, которое является отдельным от компьютера. Компьютер дополнительно выполнен с возможностью выбирать одно из компьютера и одного из отдельных устройств для приема команды на основании пользовательского ввода. При этом входные данные являются речевыми входными данными. Компьютер может находиться в транспортном средстве. Компьютер дополнительно выполнен с возможностью регистрировать каждую из множества грамматик приложения, а кроме того, в которой регистрация грамматики приложения включает в себя определение, вступает ли команда в грамматике приложения в конфликт с командой в другой грамматике, зарегистрированной в компьютере. При этом компьютер дополнительно выполнен с возможностью отклонять команду, включенную в грамматику приложения, когда команда в грамматике приложения зарезервирована грамматикой системы.
Предлагается также система, содержащая первое вычислительное устройство, первое вычислительное устройство содержит процессор и память, при этом, первое вычислительное устройство выполнено с возможностью регистрировать первую грамматику, которая хранится в постоянной памяти первого вычислительного устройства, и которое является грамматикой системы первого вычислительного устройства; регистрировать по меньшей мере одну вторую грамматику, ассоциативно связанную с приложением, хранимым в по меньшей мере одном втором вычислительном устройстве; принимать входные данные, включающие в себя по меньшей мере одно слово; выбирать первую грамматику для команды по определению, что входные данные заданы в качестве команды в каждой из первой грамматики и второй грамматики. Причем вычислительное устройство дополнительно выполнено с возможностью регистрировать множество вторых грамматик, каждая ассоциативно связана с приложением, хранимым в по меньшей мере одном втором вычислительном устройстве. Регистрация каждой из вторых грамматик включает в себя определение, вступает ли команда в регистрируемой грамматике в конфликт с командой в первой грамматике или другой второй грамматике, зарегистрированных в первом вычислительном устройстве. При этом вычислительное устройство дополнительно выполнено с возможностью выбирать одно из приложений, к которому следует применить команду, согласно состоянию приложения в отношении человеко-машинного интерфейса, ассоциативно связанного с приложением; и выдавать команду в выбранное одно из приложений. Причем входные данные являются речевыми входными данными. Причем компьютер находится в транспортном средстве.
В еще одном воплощении предлагается способ, реализованный в компьютере, состоящий в том, что принимают входные данные, включающие в себя по меньшей мере одно слово; определяют, что входные данные заданы в качестве команды в множестве грамматик, каждая из двух или более грамматик является ассоциативно связанной с соответственным приложением из множества приложений; выбирают одно из приложений, к которому следует применить команду, согласно состоянию приложения в отношении человеко-машинного интерфейса, ассоциативно связанного с приложением; и выдают команду в выбранное одно из приложений. Причем каждое из приложений включено в вычисленное устройство, которое является отдельным от компьютера. Компьютер дополнительно выполнен с возможностью выбирать одно из компьютера и одного из отдельных устройств для приема команды на основании пользовательского ввода. Входные данные являются речевыми входными данными. Компьютер может находиться в транспортном средстве. Дополнительно регистрируют каждую из множества грамматик приложения, при этом, регистрация грамматики приложения заключается в том, что определяют, вступает ли команда в грамматике приложения в конфликт с командой в другой грамматике, зарегистрированной в компьютере. Отклоняют команду, включенную в грамматику приложения, когда команда в грамматике приложения зарезервирована грамматикой системы.
Фиг. 1 - структурная схема примерной системы 100 для управления многочисленными устройствами 150, которые присоединены с возможностью поддержания связи к центральному компьютеру 105. Устройства 150 в целом близки друг к другу, например, заключены в общем местоположении, таком как помещение в здании или, в одной из примерных реализаций, транспортное средство 101. Например, в одной из примерных реализаций, устройства 150 все достаточно близки к центральному компьютеру 105, так чтобы беспроводная связь малой мощности, например, с использованием известной технологии, такой как Bluetooth или тому подобное, была возможна между устройствами 150 и компьютером 105.
Компьютер 105 в целом включает в себя человеко-машинный интерфейс 110 (HMI) для выдачи выходных данных, например, текста, сообщений, звука, и т.д., пользователю, а также для приема пользовательского ввода, например, посредством речевой команды, выбора на устройстве ввода, таком как сенсорный экран, и т.д. В одной из примерных реализаций, пользователь выдает словесные, то есть, звуковые входные данные в компьютер 105 через HMI 110. Приложение 115 речевого управления (VCA), выполняемое процессором компьютера 105, обнаруживает и интерпретирует словесные входные данные согласно грамматике 120 системы и/или одной или более грамматик 125 приложения.
Однако, различные грамматики 120, 125 могут включать в себя подобные или идентичные слова и/или фразы, используемые для выдачи команд в компьютер 105, одно или более устройств 150 и/или одно или более приложений, работающих на вычислительном устройстве 105 или 150. Соответственно, компьютер 105 может быть выполнен с возможностью, как подробно описано ниже, идентифицировать грамматики 125 приложения и разрешать конфликты между грамматикой 120 системы и одной или более грамматик 125 приложения компьютера 105, а также конфликты, которые могут возникать между грамматиками 125 приложения. Кроме того, компьютер 105 может быть выполнен, в случае, где команда включена в многочисленные грамматики 120, 125, с возможностью идентифицировать устройство 150, в которое должна быть направлена команда.
ПРИМЕРНЫЕ ЭЛЕМЕНТЫ СИСТЕМЫ
Центральный компьютер 105, например, включенный в транспортное средство 101, в целом включает в себя процессор и память, память включает в себя одну или более форм машинно-читаемых носителей, в целом включающих в себя энергозависимую и энергонезависимую память, и хранящих инструкции, выполняемые процессором для выполнения различных операций, в том числе, как раскрытые в материалах настоящей заявки. Память компьютера 105 обычно дополнительно хранит инструкции, выполняемые процессором компьютера 105, содержащие VCA 115. В дополнение, память компьютера 105 в целом включает в себя грамматику 120 системы, а также одну или более грамматик 125 приложения для одного или более приложений, заключенных в компьютере 105. В дополнение, память компьютера 105, например, энергозависимая или непостоянная, или недолговременная память может хранить одну или более грамматик 125 приложения, принятых из одного или более устройств 150.
Соответственно, компьютер 105 выполнен с возможностью, как дополнительно описано ниже, принимать одну или более грамматик 125 приложения, чтобы определять, вступают ли грамматики 120, 125 в конфликт, и/или разрешать конфликты, возникающие, когда компьютер 105 принимает команду, например, через HMI 110, интерпретированную VCA 115, где команда может интерпретироваться согласно более чем одной из грамматик 120, 125.
Компьютер 105 в целом сконфигурирован для поддержания связи по шине локальной сети контроллеров (CAN) или тому подобному. В дополнение, компьютер 105 может быть сконфигурирован для поддержания связи с одним или более устройств 150, например, с помощью различных проводных и/или беспроводных сетевых технологий, таких как Bluetooth, универсальная последовательная шина (USB) или кабель micro-USB, и т.д. Кроме того, компьютер 105 может включать в себя или может быть присоединен к HMI 110.
Вообще, HMI 110 принимает входные данные, выданные в компьютер 105, и отображает выходные данные. HMI 110 может включать в себя многообразие механизмов, например, устройство ввода, такое как сенсорный экран, клавиатура, кнопочная панель, микрофон, и т.д. Кроме того, HMI 110 в целом включает в себя механизмы вывода, такие как дисплейный экран, громкоговорители, и т.д.
VCA 115 могут использоваться для интерпретации или декодирования звуков, чтобы идентифицировать фонемы, или тому подобное, и слова из них, которые могут быть командой или командами для программного приложения, выполняемого на компьютере 105 и/или одном или более пользовательских устройств 150. Вообще, VCA 115, наряду с монитором событий, или тому подобным, для обнаружения и приема входных аудиоданных, выполняются, в качестве непрерывной ли фоновой последовательности операций в компьютере 105. То есть, известны механизмы для обнаружения и синтаксического разбора, интерпретации или декодирования входных аудиоданных.
Как только VCA 115 определило слово или слова, выданные в качестве команды в компьютер 105, грамматика 120, 125 может использоваться для определения действия, которое должно быть предпринято на основании команды. Примерные данные, которые могут быть включены в грамматику 120, 125, соответственно показаны ниже в таблицах 1 и 2. Примеры грамматики 120, 125, используемой для интерпретации команды, включают в себя команду, интерпретируемую, чтобы вызывать выполнение конкретного приложения на конкретном устройстве 150, чтобы предпринимать действие с помощью компьютера 105, например, чтобы устанавливать телефонный вызов, изменять радиостанцию, настраивать автоматическую систему кондиционирования транспортного средства 101, приписывать значение приложению, и т.д. Кроме того, как обсуждено выше, команда может дублироваться в многочисленных грамматиках 120, 125, в которых компьютер 105 выполнен с возможностью определять, какую из возможных грамматик 120, 125 следует применять для определения действия, которое должно предприниматься, на основании команды.
Вообще, термин «грамматика», в качестве используемого в материалах настоящей заявки, включает в себя определение набора допустимых команд для программного приложения, такого как приложение, выполняемое на устройстве 150, или фоновое или контролирующее приложение, выполняемое на компьютере 105, например, которое принимает входные данные, например, речевые команды через HMI 110 и интерпретируемые посредством VCA 115. Соответственно, грамматика 120, 125 может включать в себя набор правил для синтаксического разбора речевых команд и для назначения речевой команды на действие в компьютерном программном обеспечении, например, чтобы приписывать значение приложению, чтобы предпринимать действие, например, в музыкальном приложении для воспроизведения, осуществления паузы, возобновления, и т.д. В некоторых случаях, правила в грамматике 120 могут просто идентифицировать набор команд, например, одиночные слова или фразы, и соответственные действия, ассоциативно связанные с каждой из команд. Возможны более сложные грамматики, например, где правило задает, что первое слово обозначает первое значение, например, ассоциативно связано с первым действием, если сопровождается вторым словом, и второе значение, например, ассоциативно связано с вторым действием, если сопровождается третьим словом.
Грамматика 120 системы в целом хранится в постоянной и/или энергонезависимой памяти компьютера 105. Грамматика 120 системы используется для определения действия или действий, которые должны предприниматься в или компьютером 105, на основании определенных команд, как задано в грамматике 120. Грамматика 120 указывается ссылкой как грамматика 120 системы, или «уровень системы», так как она применяется к командам, применяемым к операционной системе, фоновому обработчику событий, или тому подобному, работающим на компьютере 105, в противоположность приложению или приложениям, работающим на компьютере 105 и/или одном или более устройств 150. Некоторые из команд в грамматике 120 могут быть зарезервированы для грамматики 120. То есть, если команда в грамматике 120 зарезервирована, даже если такая команда появляется в грамматике 125 для приложения, команда будет интерпретирована в качестве команды уровня системы для компьютера 105.
Грамматика 125 приложения может быть включена в команды и/или данные, которые содержат приложение, хранимое в и выполняемое на устройстве 150 или компьютере 105. Соответственно, грамматика 125 приложения относится к одиночному приложению, выполняемому на компьютере 105 или устройстве 150. Грамматика 125 приложения или ее часть могут выдаваться в компьютер 105, в силу чего, компьютер 105 может определять, когда вызваны команды в грамматике 125 приложения, и может разрешать конфликты, которые могут возникать между грамматикой 120 системы и грамматикой 125 приложения, или между первой грамматикой 125 приложения и одной или более вторых грамматик 125 приложения.
Соответственно, в дополнение к хранению грамматик 120, 125, память компьютера 105 в целом хранит правила для выбора устройства и/или приложения для приема команды, и для приоритезации и/или разрешения конфликтов между устройствами, приложениями и/или грамматиками 120, 125. Примеры данных, используемых для задания таких правил, предусмотрены ниже в Таблицах 14.
Пользовательское устройство 150 может быть любым одним из многообразия вычислительных устройств, включающих в себя процессор и память, а также возможности связи. Например, пользовательское устройство 150 может быть портативным компьютером, планшетным компьютером, смартфоном, и т.д., например, который включает в себя возможности для проводной или беспроводной связи с использованием протоколов IEEE 802.11, Bluetooth, и/или протоколов сотовой связи, USB (универсальной последовательной шины), micro-USB, и т.д. Кроме того, пользовательское устройство 150 может использовать такие возможности связи для поддержания связи через сеть 120 и, к тому же, непосредственно с компьютером 105 транспортного средства, например, с использованием Bluetooth.
ПРИМЕРНЫЕ ДАННЫЕ
Как упомянуто выше, один или более машинно-читаемых носителей, например, энергозависимых и/или энергонезависимых, постоянных и/или непостоянных, и т.д., могут использоваться компьютером 105 для хранения различных данных. Например, компьютер 105 может хранить грамматики 120, 125, в том числе.
Часть примерной грамматики 120 приведена ниже в Таблице 1.
Таблица 1
ID команды
Команда
Пояснение
1
«Набрать номер <10-значный номер телефона>»
Набрать запрошенный номер телефона с использованием телефонного устройства 150, присоединенного к компьютеру 105
2
«Выключить радиоприемник»
Выключить радиоприемник, управляемый компьютером 105
3
«Найти оптимальный маршрут до <уличный адрес>»
Определить маршрут до заданного уличного адреса в модуле навигации, включенном в компьютере 105
4
«<Наименование приложения>»
Активировать приложение, имеющее заданное наименование
5
«Завершить сеанс <наименование приложения>»
Завершить выполнение приложения, имеющего заданное наименование
Часть примерной грамматики 125 приведена ниже в Таблице 2.
Таблица 2
ID команды
Команда
Пояснение
10
«Воспроизводить <название песни>»
Воспроизвести песню, имеющую запрошенное название
11
«Сделать паузу»
Приостановить воспроизведение аудиоконтента
12
«Последняя дорожка звукозаписи»
Перевести воспроизведение на предыдущую дорожку записи
13
«Следующая дорожка звукозаписи»
Осуществить переход воспроизведения на следующую дорожку звукозаписи
Компьютер 105 может отслеживать приложения, которые могут выполняться в компьютере 105 и/или одном или более устройств 150. Таблица, приведенная ниже, дает пример данных, которые могут поддерживаться компьютером 105 для идентификации и отслеживания приложений.
<u>Таблица 3</u>
AppID (идентификатор приложения)
AppName (наименование приложения)
AppState (состояние приложения)
GrammarID (идентификатор грамматики)
Название устройства
175
Поток обмена
1
17
Телефон Лу
245
Pandora
1
231
iPOD Стефана
242
Slacker
2
323
USB Боба
239
Weather
1
6543
iPOD Эда
240
Stitcher
2
2314
Мое устройство
241
BioCycle
2
пусто
Мое устройство
246
Pandora
1
231
Центральный компьютер
Столбец AppID предусматривает идентификатор для каждого зарегистрированного приложения столбец AppName предусматривает наименование каждого соответственного приложения. Отметим, что наименование приложения может повторяться, так как одно и то же приложение может быть включено в более чем одно устройство 150 и/или центральный компьютер 105 и одно или более устройств 150. GrammarID, то есть, идентификатор грамматики, дает идентификатор для грамматики 120 системы или грамматики 125 приложения. Соответственно, еще одна таблица или структура данных в компьютере 105 могла бы ассоциативно связывать соответственные идентификаторы грамматики с таблицами или другими структурами данных, хранящими соответственные грамматики 120, 125. Вообще, данные, такие как показанные в Таблице 3, могут соответствующим образом использоваться для идентификации возможных грамматик 120, 125, которые должны вызываться, когда принята команда, например, чтобы приписывать значение приложению, или чтобы выполнять некоторую операцию в компьютере 105 или устройстве 150, например, с помощью приложения.
Компьютер 105 дополнительно может хранить данные, отражающие состояние приложения в отношении пользовательского интерфейса, например, HMI 110. Например, компьютер 105 мог бы поддерживать в памяти таблицу, имеющую столбец AppID, например, AppID, показанный в Таблице 3, приведенной выше, тем самым, компьютер 105 может ассоциативно связывать состояние приложения, показанное в таблице или структуре данных приложений с приложением, о которых данные поддерживаются в таблице или структуре данных, такой как показанная в Таблице 3. Кроме того, компьютер 105 мог бы включать в себя столбец, указывающий «Уровень HMI» или «Состояние HMI», или тому подобное, то есть, ассоциативное связывание AppID с Уровнем HMI. Таблица 4, приведенная ниже, дает пример таблицы уровня HMI.
Таблица 4
AppID (идентификатор приложения)
Уровень HMI
175
3
245
2
242
0
239
1
240
1
241
0
Вообще, уровень или состояние HMI могли бы иметь любое одно из многообразия значений, например, в одной из реализаций, значение 0, или не обладать значениям, что приложение не было запущено или конкретизировано, например, вообще не работает в компьютере 105 или устройстве 150. Значение 1 могло бы означать, что приложение является работающим в фоновом режиме, то есть, было запущено, но не принимает входные данные и не выдает выходные данные через HMI 110. Значение 2 могло бы означать, что приложение имеет ограниченное состояние, например, выдает ограниченные выходные данные, такие как аудио, но не выводит на дисплейный экран HMI 110, или предусмотрены ли выходные данные на дисплейном экране HMI 110, выходные данные ограничены строкой текущего состояния, пиктограммой или тому подобным. Значение 3 могло бы означать, что приложение имеет полное или высокоуровневое состояние, например, выдает выходные данные с помощью многочисленных механизмов HMI 110, например, видео и аудио. В одной из реализаций, только одно приложение одновременно может находиться на «полном» уровне и, подобным образом, только одно приложение может всегда находиться на «ограниченном» уровне, в то время как многочисленные приложения могли бы находиться на «фоновом» уровне. Однако, также можно, чтобы многочисленные приложения находились на ограниченном уровне в одно время, или даже чтобы многочисленные приложения находились на полном уровне в одно время.
ПРИМЕРНЫЕ ПОТОКИ ПОСЛЕДОВАТЕЛЬНОСТИ ОПЕРАЦИЙ
Фиг. 1 - схема примерной последовательности 200 операций для устранения неоднозначности команд, принятых в центральном вычислительном устройстве. Последовательность 200 операций начинается на вершине 205 блок-схемы, на которой компьютер 105, например, по включению питания, определяет, обнаружены ли одно или более устройств 150. Например, как упомянуто выше, соединение USB, или тому подобное, могут обнаруживаться, и/или устройство 150 могут быть физически присоединены, например, через соединение USB или micro-USB, или тому подобное, к компьютеру 105. Если устройства 150 не обнаружены, то последовательность 200 операций заканчивается. Иначе, последовательность 200 операций переходит на вершину 210 блок-схемы.
На вершине 210 блок-схемы, компьютер 105 регистрирует каждое из устройств, обнаруженных на вершине 205 блок-схемы. Например, компьютер 105 может поддерживать таблицу или другую структуру данных, идентифицирующую обнаруженные устройства 150, с использованием идентификатора устройства, такого как название устройства, как показано в Таблице 3, приведенной выше, и т.д. Кроме того, компьютер 105 в целом определяет приложение или приложения, работающие и/или имеющиеся в распоряжении для выполнения на каждом устройстве 150. Такое определение в целом включает в себя получение наименования приложения, которое может храниться, наряду с уникальным или по существу уникальным идентификатором, сформированным компьютером 105, например, как показано выше в Таблице 3. Последовательность 200 операций затем переходит на вершину 215 блок-схемы.
На вершине 215 блок-схемы, компьютер 105 хранит данные, относящиеся к устройствам и/или приложениям, зарегистрированным, как обсуждено выше в отношении вершин 205, 210 блок-схемы. Например, грамматика 120 постоянно хранится в компьютере 105, как обсуждено выше, но одна или более грамматик 125 могут выдаваться на компьютер 105, например, на вершине 210 блок-схемы, по меньшей мере частично на основании устройства или устройств 150, идентифицированных на вершине 205 блок-схемы. Соответственно, одна или более грамматик 125 могут быть зарегистрированы и по меньшей мере временно сохраняться в памяти компьютера 105 на основании устройства или устройств 150 и/или приложений на соответственном устройстве 150. Кроме того, компьютер 105 может соответственно хранить данные касательно устройств 150, приложений на них, грамматик 120, 125, применимых к приложениям на компьютере 105 или устройстве 150, и т.д., например, как проиллюстрировано выше в Таблице 3. Фиг. 3, подробно обсужденная ниже, иллюстрирует примерную последовательность 300 операций, посредством которой элементы грамматики 125 могут регистрироваться компьютером 105.
На вершине 220 блок-схемы, компьютер 105 ожидает команду через HMI 110, например, речевую команду. VCA 115 может работать в качестве фоновой последовательности операций в компьютере 105, осуществляя проверку, чтобы определять, принята ли речевая команда, и интерпретируя команду, например, с использованием известных технологий распознавания речи, как описано выше. Соответственно, на вершине 225 блок-схемы, компьютер 105 определяет, была ли принята команда. Если нет, последовательность операций 200 переходит на вершину 230 блок-схемы. Если так, последовательность операций 200 переходит на вершину 235 блок-схемы.
На вершине 230 блок-схемы, компьютер 105 определяет, должна ли продолжаться последовательность 200 операций. Например, последовательность 200 операций могла бы завершаться, так как компьютер 105 выключается, так как устройства 150 не обнаружены, и т.д. Если последовательность 200 операций не должна продолжаться, то последовательность 200 операций заканчивается. Иначе, последовательность 200 операций возвращается на вершину 220 блок-схемы. Должно быть отмечено, что компьютер 105 мог бы обнаруживать дополнительное устройство 150, в каком случае, хотя и не показано на фиг. 2, последовательность 200 операций могла бы возвращаться на вершину 210 блок-схемы. Кроме того, компьютер 105 мог бы обнаруживать, что обнаруженное ранее устройство 150 больше не обнаруживается, в каком случае, компьютер 105 мог бы удалять больше не обнаруживаемое устройство 150, а также записи о приложениях на нем и ассоциативно связанных грамматиках 125 из данных, которые хранились, как описано выше.
Вершина 235 блок-схемы может следовать за вершиной 225 блок-схемы. На вершине 235 блок-схемы, компьютер 105 определяет, существует ли неоднозначность, например, неоднозначность, в отношении принятой команды. Например, принятая команда может запрашивать выполнение приложения, найденного на более чем одном устройстве 150 или на компьютере 105 и по меньшей мере одном устройстве 150. Кроме того, например, принятая команда может быть найдена в более чем одной грамматике 120, 125. Соответственно, до того, как принятая команда может быть выполнена, компьютер 105 должен определять устройство 150, на котором должна выполняться команда, и/или грамматику 120, 125, согласно которой должна выполняться команда. Отметим, что, в некоторых реализациях, определенные команды могут быть зарезервированы грамматикой 120 компьютера 105, тем самым, даже если такая команда дает неоднозначность, неоднозначность может игнорироваться компьютером 105, и будет придерживаться грамматика 120. В любом случае, если неоднозначность существует в отношении принятой команды, то вершина 240 блок-схемы выполняется следующей. Иначе, последовательность 200 операций переходит на вершину 245 блок-схемы.
На вершине 240 блок-схемы, которая может сопровождать вершину 235 блок-схемы, компьютер 105 устраняет неоднозначность принятой команды. Примерные последовательности операций, посредством которых команда может подвергаться устранению неоднозначности, обсуждены ниже со ссылкой на фиг. 3, 4 и 5.
Вслед за вершиной 235 блок-схемы или вершиной 240 блок-схемы, на вершине 245 блок-схемы, компьютер 105 вызывает выполнение принятой команды. Например, команда может выдаваться для выполнения надлежащим устройством 154 в приложении, например, для конкретизации приложения, и т.д. В качестве альтернативы, команда может выдаваться в приложение процессора в компьютере 105. Вслед за вершиной 245 блок-схемы, последовательность 200 операций возвращается на вершину 230 блок-схемы.
Фиг. 3 - схема примерной последовательности 300 операций для регистрации грамматики приложения в центральном компьютере 105, который выполнен с возможностью управлять многочисленными устройствами 105. Последовательность 300 операций начинается на вершине 305 блок-схемы, в которой элемент грамматики 125 проверяется на соответствие грамматике системы компьютера 105 и одной или более грамматикам 125 из других устройств 105, если это имеет место.
Затем, на вершине 310 блок-схемы, компьютер 105 определяет, существует ли какой-нибудь конфликт или неоднозначность между элементом проверки грамматики 125 на вершине 305 блок-схемы или любой другой грамматикой 120, 125. Например, элемент может быть командой, которая также оказывается в другой грамматике 120, 125, может быть наименованием приложения на многочисленных устройствах 125, и т.д. В любом случае, если конфликт не обнаружен, то последовательность 300 операций переходит на вершину 325 блок-схемы, обсужденную ниже. Однако, если конфликт или неоднозначность обнаружены, то вершина 315 выполняется следующей.
На вершине 315 блок-схемы, компьютер 105 определяет, может ли быть разрешен обнаруженный конфликт. Например, если слово или фраза в грамматике 125 вступает в конфликт с зарезервированным словом или фразой в грамматике 120 системы компьютера 105, конфликт не может быть разрешен. Иными словами, слово или фраза в грамматике 125, которые соответствуют слову или фразе в грамматике 120 системы, не разрешены и не могут быть рассмотрены компьютером 105, когда принимаются входные данные, например, с помощью VCA 115. Если конфликт не может быть разрешен, то вершина 320 блок-схемы выполняется следующей. Иначе, следующей приводится в исполнение вершина 330 блок-схемы.
На вершине 320 блок-схемы, компьютер 105 отвергает конфликтную команду из грамматики 125. Например, компьютер 105 может просто не регистрировать и не распознавать команду. Вслед за вершиной 320 блок-схемы, последовательность 300 операций переходит на вершину 325 блок-схемы.
На вершине 325 блок-схемы, компьютер 105 определяет, имеет ли проверяемая грамматика 125 дополнительные элементы, например, слова или фразы, используемые для команд, которые должны быть проверены. Если так, последовательность 300 операций возвращается на вершину 305 блок-схемы. Иначе, последовательность 300 операций заканчивается вслед за вершиной 325 блок-схемы.
На вершине 330 блок-схемы, которая может следовать за вершиной 315 блок-схемы, как описано выше, компьютер 105, определивший на вершине 315 блок-схемы, что конфликт, который был обнаружен на вершине 310 блок схемы, мог бы быть разрешен, регистрирует команду. Например, команда могла бы быть сохранена в памяти компьютера 105, как описано со ссылкой на одну или более таблиц, приведенных выше. Вслед за вершиной 330 блок-схемы, последовательность 300 операций переходит на вершину 325 блок-схемы.
Фиг. 4 - схема примерной последовательности 400 операций для выбора устройства для выполнения команды, принятой в центральном компьютере, который выполнен с возможностью управлять многочисленными устройствами. Последовательность 400 операций начинается на вершине 405 блок-схемы, когда компьютер 105 принимает команду, которая определена для запроса доступа к приложению, имеющему экземпляры на многочисленных соответственных устройствах 150 и/или компьютере 105. Например, компьютер 105 мог бы принимать команду для «Pandora», где приложение с таким наименованием включено в состав на компьютере 105, а также устройстве 150. Подобным образом, приложение «Pandora» могло бы быть включено в состав на двух, трех, и т.д., устройствах 150.
Затем, на вершине 410 блок-схемы, компьютер 105 запрашивает пользовательский ввод, относительно которого экземпляр запрошенного приложения должен быть подвергнут доступу, в общем смысле, какое вычислительное устройство 105, 150 должно подвергаться доступу. Например, компьютер 105 мог бы выдавать звуковое сообщение, просящее пользователя произнести название устройства, произнести номер для соответственных устройств, и т.д. В качестве альтернативы или дополнительно, компьютер 105 мог бы отображать список устройств на сенсорном экране, или тому подобном, для выбора пользователем, например, как показано в Таблице 5; такой выбор мог бы происходить посредством произнесения названия или номера устройства, как пояснено выше, или посредством касания названия или номера требуемого устройства.
Номер устройства
Название
1
Компьютер транспортного средства
2
iPod Боба
3
Телефон Мери на платформе
4
iPad Джила
Вслед за вершиной 410 блок-схемы, на вершине 415 блок-схемы, компьютер 105 определяет, были ли приняты входные данные, запрошенные на вершине 410 блок-схемы, например, компьютер 105 может быть сконфигурирован таймаутом. Или тому подобным, например, 15 секунд, 30 секунд, одна минута, и т.д., в течение которых ожидается, что пользователь должен выдать входные данные. Если входные данные не приняты, например, с каким-нибудь периодом таймаута, то последовательность 400 операций переходит на вершину 420 блок-схемы. Иначе, входные данные, задающие устройство, на котором должен быть осуществлен доступ к приложению, принимаются, и последовательность 400 операций переходит на вершину 425 блок-схемы.
На вершине 420 блок-схемы, компьютер 105 делает выбор по умолчанию вычислительного устройства 105, 150, на котором должен быть осуществлен доступ к приложению. Например, компьютер 105 может использовать сам себя в качестве выбора по умолчанию. В качестве альтернативы или дополнительно, пользователь может задавать устройство 150, которое должно использоваться по умолчанию. В любом случае, вслед за вершиной 420 блок-схемы, последовательность 400 операций переходит на вершину 425 блок-схемы.
На вершине 425 блок-схемы, компьютер 105 выдает команду для доступа к запрошенному приложению на устройство, заданное на одной из вершин 415, 420 блок-схемы, как описано выше. Вслед за вершиной 425 блок-схемы последовательность 400 операций заканчивается.
Фиг. 5 - схема примерной последовательности 500 операций для выбора экземпляра приложения для выполнения команды, принятой в центральном компьютере, который выполнен с возможностью управлять многочисленными устройствами. Последовательность 500 операций начинается на вершине 505 блок-схемы, на которой компьютер 105 принимает команду, например, через HMI 110 в VCA 115, как описано выше.
Затем, на вершине 510 блок-схемы, компьютер 105 определяет, зарегистрирована ли команда, принятая на вершине 505 блок-схемы у многочисленных приложений на одном или более вычислительных устройств 105, 150. Если нет, последовательность 500 операций заканчивается. Иначе, управление переходит на вершину 515 блок-схемы.
На вершине 515 блок-схемы, компьютер 105 идентифицирует приложение для приема команды. Например, компьютер 105 может использовать таблицу или другую структуру данных, подобную проиллюстрированной выше в отношении Таблицы 4. То есть, компьютер 105, имеющий идентифицированные два или более приложений, ассоциативно связанных с грамматиками 120, 125, в том числе, запрошенной командой, затем приоритезирует два или более приложений. Например, состояние или уровень HMI, или тому подобное, такие как обсужденные выше касательно Таблицы 4, могут быть идентифицированы для такого приложения. Приложение, имеющее уровень HMI с наивысшим приоритетом, в таком случае, может выбираться для приема команды.
Затем, на вершине 520 блок-схемы, компьютер 105 отправляет команду, запрошенную на вершине 505 блок-схемы, в приложение, определенное на вершине 510 блок-схемы, например, в компьютере 105 или устройстве 150. Вслед за вершиной 520 блок-схемы последовательность 500 операций заканчивается.
ЗАКЛЮЧЕНИЕ
Вычислительные устройства, такие как обсужденные в материалах настоящей заявки, каждое, как правило, включает в себя инструкции, исполняемые одним или более вычислительных устройств, такими как идентифицированные выше, и для выполнения вершин блок-схем или этапов последовательностей операций, описанных выше. Например, вершины блок-схем последовательностей операций, обсужденные выше, могут быть воплощены в качестве машинно-исполняемых инструкций.
Машинно-исполняемые инструкции могут компилироваться или интерпретироваться из компьютерных программ, созданных с использованием многообразия языков и/или технологий программирования, в том числе, но не в качестве ограничения, и в одиночку или в комбинации, Java™, C, C++, Visual Basic, Java Script, Perl, HTML, и т.д. Вообще, процессор (например, микропроцессор) принимает инструкции, например, из памяти, машинно-читаемого носителя, и т.д., и исполняет эти инструкции, тем самым, выполняя одну или более последовательностей операций, в том числе, одну или более из последовательностей операций, описанных в материалах настоящей заявки. Такие инструкции и другие данные могут храниться и передаваться с использованием многообразия машинно-читаемых носителей. Файл в вычислительном устройстве, как правило является совокупностью данных, хранимых на машинно-читаемом носителе, таком как запоминающий носитель, оперативное запоминающее устройство, и т.д.
Машинно-читаемый носитель включает в себя любой носитель, который принимает участие в предоставлении данных (например, инструкций), которые могут читаться компьютером. Такой носитель может принимать многие формы, в том числе, но не в качестве ограничения, энергонезависимые носители, энергозависимые носители, и т.д. Энергонезависимые носители, например, включают в себя оптические или магнитные диски и другую постоянную память. Энергозависимые носители включают в себя динамическое оперативное запоминающее устройство (DRAM), которое типично составляет основную память. Обычные формы машинно-читаемых носителей, например, включают в себя дискету, гибкий диск, жесткий диск, магнитную ленту, любой другой магнитный носитель, CD-ROM (постоянное запоминающее устройство (ПЗУ) на компакт-диске), DVD (цифровой многофункциональный диск), любой другой оптический носитель, перфокарты, бумажную ленту, любой другой физический носитель со схемой расположения отверстий, ОЗУ (оперативное запоминающее устройство, RAM), ППЗУ (программируемое ПЗУ, PROM), СППЗУ (стираемое программируемое ПЗУ, EPROM), флэш-память/ЭСППЗУ (FLASH-EEPROM (электрически стираемое программируемое ПЗУ)), любые другие микросхему или картридж памяти, или любой другой носитель, с которого компьютер может осуществлять считывание.
На чертежах, одинаковые номера ссылок указывают идентичные элементы. Кроме того, некоторые или все из этих элементов могли бы быть изменены. Что касается сред, последовательностей операций, систем, способов, и т.д., описанных в материалах настоящей заявки, должно быть понятно, что, хотя этапы таких последовательностей операций, и т.д., были описаны в качестве происходящих согласно определенной упорядоченной последовательности, такие последовательности операций могли бы быть осуществлены на практике с описанными этапами, выполняемыми в порядке, ином, чем порядок, описанный в материалах настоящей заявки. Кроме того, должно быть понятно, что некоторые этапы могли бы выполняться одновременно, что могли бы быть добавлены другие этапы, или что некоторые этапы, описанные в материалах настоящей заявки, могли бы быть опущены. Другими словами, описания способов в материалах настоящей заявки предоставлены с целью иллюстрации некоторых вариантов осуществления и никоим образом не должны толковаться, с тем чтобы ограничивать заявленное изобретение.
Соответственно, должно быть понятно, что вышеприведенное описание подразумевается иллюстративным, а не ограничивающим. Многие варианты осуществления и применения, иные чем предоставленные примеры, были бы очевидны специалистам в материалах настоящей заявки по прочтению вышеприведенного описания. Объем изобретения не должен определяться со ссылкой на вышеприведенное описание, но взамен, должен определяться со ссылкой на прилагаемую формулу изобретения наряду с полным объемом эквивалентов, на которые дано право такой формуле изобретения. Ожидается и подразумевается, что будущие совершенствования будут происходить в областях техники, обсужденных в материалах настоящей заявки, и что раскрытые системы и способы будут заключены в таких будущих вариантах осуществления. Подводя итог вышесказанному, должно быть понятно, что изобретение является допускающим модификацию и изменение, и ограничено исключительно следующей формулой изобретения.
Все термины, используемые в формуле изобретения, подразумеваются обусловленными своими наиболее свободными расширительными толкованиями и своими обычными значениями в качестве понятных специалистам в данной области техники, если в материалах настоящей заявки не приведено явное указание на иное. В частности, использование форм единственного числа, «упомянутый», и т.д., должно читаться излагающим один или более из указанных элементов, если пункт формулы изобретения не передает явное ограничение иным.