ПЕРСОНАЛИЗИРОВАННЫЙ РЕПОЗИТОРИЙ ОБЪЕКТОВ
PERSONALIZED OBJECT REPOSITORY

ПЕРСОНАЛИЗИРОВАННЫЙ РЕПОЗИТОРИЙ ОБЪЕКТОВ
[0001] Настоящая заявка испрашивает приоритет и является продолжением непредварительной патентной заявки США № 14/962,415, поданной 8 декабря 2015, озаглавленной ʺPERSONALIZED ENTITY REPOSITORYʺ которая, в свою очередь, испрашивает приоритет предварительной патентной заявки США № 62/245,241, поданной 22 октября 2015, озаглавленной ʺPERSONALIZED ENTITY REPOSITORYʺ, обе из которых включены в настоящий документ посредством ссылки во всей своей полноте.
ПРЕДШЕСТВУЮЩИЙ УРОВЕНЬ ТЕХНИКИ
[0002] Расширяется использование мобильных устройств, таких как смартфоны, носимые устройства, планшеты, ноутбуки и т.д. За счет понимания содержимого, просматриваемого пользователем, и действий, предпринимаемых пользователем, мобильное устройство может обеспечивать гораздо лучший опыт работы пользователя, например, предлагая персонализированные предсказания и помощь пользователю. Часть понимания содержимого и действий включает в себя идентификацию и классификацию объектов, распознаваемых в содержимом экрана устройства. Объекты могут существовать в репозитории объектов, таком как база знаний или модель зрения, в котором хранятся факты и информация об объектах. Крупные, общедоступные репозитории объектов могут включать в себя миллионы таких объектов. Большинство вычислительных устройств, особенно мобильных вычислительных устройств, таких как смартфоны и планшеты, имеют ограниченную память и используют репозиторий объектов через соединение с сервером.
КРАТКОЕ ОПИСАНИЕ СУЩНОСТИ ИЗОБРЕТЕНИЯ
[0003] Реализации разделяют репозиторий объектов на несколько фиксированных наборов или секций. Набор может быть основанным на местоположении, основанным на теме (тематическим), основанным на действии или функциональным. Система может определять наборы на сервере и предоставлять только те наборы на клиентское устройство, которые являются релевантными для этого конкретного клиента. Наборы, загруженные на клиентское устройство, представляют собой персонализированный репозиторий объектов, к которому можно получать доступ без соединения с сервером. Клиентское устройство может включать в себя подсистему идентификации набора. Подсистема идентификации набора может включать в себя модель предсказания, которая предсказывает один или несколько наборов, заданных некоторым текстом, изображениями или другими признаками. Модель предсказания может использоваться для определения того, какие наборы наиболее полезны для пользователя. Подсистема идентификации набора может также отслеживать местоположение пользователя для определения того, какие наборы местоположений могут быть наиболее релевантными.
[0004] Наборы могут быть ранжированы для пользователя клиентского устройства, например, на основе местоположения пользователя, истории поиска пользователя, содержимого, которое пользователь просматривал на устройстве, времени суток, сигналов от других устройств и т.д. Таким образом, например, если пользователь начинает изучать поездку на Гавайи, система может определить, что набор с объектами, связанными с Гавайями, является особенно релевантным для пользователя. Если пользователь вылетает из Нью-Йорка в Лос-Анджелес, система может определить, что наборы местоположений для Лос-Анджелеса являются релевантными. Клиентское устройство может использовать ранжирования, чтобы определить, какие наборы извлекать и какие удалять из памяти. Например, если ранее загруженный набор больше не является релевантным, система может удалить этот набор, чтобы освободить место для другого набора. Система может использовать параметры использования набора, чтобы определить, какие наборы включать в персонализированный репозиторий объектов в любое время. В некоторых реализациях, пользователь может устанавливать и управлять параметрами использования набора. Обновление набора может включать в себя определение дельты для набора, чтобы сократить данные, переносимые на клиентское устройство. В некоторых реализациях, наборы могут создаваться как версии, например, так, что изменение схемы не нарушает приложения, использующие данную модель.
[0005] В соответствии с некоторыми аспектами раскрытия, мобильное устройство содержит устройство отображения, персонализированный репозиторий объектов, хранящийся в памяти, причем персонализированный репозиторий объектов включает в себя множество фиксированных наборов объектов из репозитория объектов, хранящегося на сервере, причем каждый фиксированный набор имеет соответствующий идентификатор и включает в себя информацию об объектах в наборе, по меньшей мере один процессор и память, хранящую инструкции, которые, при их исполнении по меньшей мере одним процессором, предписывают мобильному устройству выполнять операции. Операции включают в себя идентификацию фиксированных наборов репозитория объектов, которые являются релевантными для пользователя мобильного устройства, на основе контекста, связанного с мобильным устройством, ранжирование фиксированных наборов по релевантности, определение выбранных наборов из идентифицированных фиксированных наборов с использованием ранга и параметров использования набора, применимых для пользователя, и обновление персонализированного репозитория объектов с использованием выбранных наборов.
[0006] В соответствии с некоторыми аспектами раскрытия, способ включает в себя прием захваченного изображения экрана, выполненного с возможностью отображать содержимое на дисплее мобильного устройства, определение текста в изображении путем выполнения распознавания текста на изображении, предоставление текста в модель предсказания набора, причем модель предсказания набора обучается для предсказания одного или нескольких фиксированных наборов объектов, и сохранение по меньшей мере одного фиксированного набора объектов из предсказанных фиксированных наборов объектов в персонализированном репозитории объектов в памяти на мобильном устройстве.
[0007] В соответствии с некоторыми аспектами раскрытия, способ может включать в себя генерацию множества фиксированных наборов объектов из репозитория объектов. Фиксированные наборы включают в себя наборы на основе местоположения, каждый набор на основе местоположения включает в себя объекты из репозитория объектов, которые имеют местоположение внутри ячейки, причем ячейка связана с набором, и наборы на основе темы, причем по меньшей мере некоторые из наборов на основе темы включают в себя объекты из репозитория объектов, которые связаны друг с другом через сходство (подобие) представлений. Способ также может включать в себя предоставление поднабора фиксированных наборов объектов на клиентское устройство, причем клиентское устройство запрашивает поднабор на основе местоположения клиентского устройства и распознанных элементов, идентифицированных в содержимом, сгенерированном для отображения на клиентском устройстве.
[0008] В одном общем аспекте, компьютерный программный продукт, воплощенный на считываемом компьютером устройстве хранения, включает в себя инструкции, которые, при их исполнении по меньшей мере одним процессором, сформированным на подложке, предписывают вычислительному устройству выполнять любой из раскрытых способов, операций или процессов. Другой общий аспект включает в себя систему и/или способ для генерирования фиксированных наборов объектов в репозитории объектов и предоставления некоторых из фиксированных наборов на персональное вычислительное устройство в качестве персонального репозитория объектов, по существу, как показано и/или описано в связи с по меньшей мере одной из фигур и более подробно изложено в формуле изобретения.
[0009] Одна или несколько реализаций изобретения, описанного здесь, могут быть осуществлены таким образом, чтобы реализовать одно или несколько из следующих преимуществ. В качестве одного примера, генерирование фиксированных наборов объектов позволяет системе предоставлять персональные или индивидуализированно настроенные репозитории объектов масштабируемым образом. Настроенный репозиторий объектов может помочь в анализе текста и анализе изображения на устройстве для поддержки функциональных возможностей помощи пользователю даже без соединения с сетью. Пользователь может управлять количеством ресурсов, выделяемых для персонального репозитория объектов, и система может автоматически определять, какие наборы наилучшим образом используют выделенные ресурсы. В качестве другого примера, система может предсказывать, какие наборы наиболее релевантны для пользователя. Предсказание может быть основано на ряде факторов, специфичных для пользователя и/или персонального вычислительного устройства, таких как местоположение, время суток, сигналы от других вычислительных устройств, связанных с пользователем или известных данному устройству, недавние действия на вычислительном устройство и т.д. В качестве другого примера, реализации могут поддерживать создание версий наборов, так что изменение, которое реструктурирует информацию в наборе, не нарушает приложения, которые используют набор.
[0010] Детали одной или нескольких реализаций приведены на прилагаемых чертежах и в описании ниже. Другие признаки будут очевидны из описания и чертежей и из формулы изобретения.
КРАТКОЕ ОПИСАНИЕ ЧЕРТЕЖЕЙ
[0011] Фиг. 1 - блок-схема, иллюстрирующая примерную систему в соответствии с раскрытым изобретением.
[0012] Фиг. 2 иллюстрирует примерное отображение пользовательского интерфейса для задания параметров использования набора для персонализированного репозитория объектов в соответствии с раскрытым изобретением.
[0013] Фиг. 3 иллюстрирует примерное отображение содержимого, которое предоставляет контекст для определения того, какие наборы являются наиболее релевантными для пользователя вычислительного устройства, в соответствии с раскрытыми реализациями.
[0014] Фиг. 4 иллюстрирует примерное отображение пользовательского интерфейса для предложения дополнительных наборов для включения в персонализированный репозиторий объектов в соответствии с раскрытыми реализациями.
[0015] Фиг. 5 иллюстрирует другое примерное отображение пользовательского интерфейса для предложения дополнительных наборов для включения в персонализированный репозиторий объектов в соответствии с раскрытыми реализациями.
[0016] Фиг. 6 иллюстрирует блок-схему последовательности операций примерного процесса для генерирования и обновления фиксированных наборов объектов в соответствии с раскрытыми реализациями.
[0017] Фиг. 7 иллюстрирует блок-схему последовательности операций примерного процесса для создания персонального репозитория объектов с использованием фиксированных наборов объектов в соответствии с раскрытыми реализациями.
[0018] Фиг. 8 иллюстрирует блок-схему последовательности операций примерного процесса для идентификации фиксированных наборов объектов, релевантных для пользователя клиентского устройства, в соответствии с раскрытыми реализациями.
[0019] Фиг. 9 иллюстрирует блок-схему последовательности операций примерного процесса для выбора фиксированных наборов объектов из фиксированных наборов объектов, релевантных для пользователя клиентского устройства, на основе параметров использования набора в соответствии с раскрытыми реализациями.
[0020] Фиг. 10 показывает пример компьютерного устройства, которое может быть использовано для реализации описанных методов.
[0021] Фиг. 11 показывает пример распределенного компьютерного устройства, которое может быть использовано для реализации описанных методов.
[0022] Одинаковые ссылочные символы на разных чертежах обозначают одинаковые элементы.
ПОДРОБНОЕ ОПИСАНИЕ
[0023] Фиг. 1 представляет собой блок-схему системы персонального репозитория объектов в соответствии с примерной реализацией. Система 100 может использоваться для создания персонализированного репозитория объектов из вариантов выбора предварительно вычисленных или фиксированных наборов объектов. Наборы являются фиксированным в том смысле, что они вычисляются перед любым конкретным запросом для набора или, другими словами, не генерируются в ответ на запрос набора. Система 100 может определять, какие наборы наиболее полезны в конкретный момент времени, и может обновлять персонализированный репозиторий объектов, чтобы гарантировать, что объекты в персонализированном репозитории являются релевантными для пользователя. Обновление персонализированного репозитория объектов включает в себя удаление наборов, которые теперь являются менее релевантными для пользователя, чем раньше, и добавление новых наборов, которые стали релевантными. Персонализированный репозиторий объектов может использоваться для определения объектов в содержимом, сгенерированном для отображения на вычислительном устройстве, чтобы персонализировать пользовательский опыт работы на вычислительном устройстве. Персонализация пользовательского опыта может включать в себя предсказание действий, тем, слов или фраз и т.д. Система 100 на фиг. 1 иллюстрируется как система клиент-сервер с некоторой обработкой данных или хранением данных, происходящими на сервере 110, и другой обработкой данных, происходящей на клиентском устройстве 150. Однако могут использоваться другие конфигурации и приложения, и реализации не ограничены точными иллюстрируемыми конфигурациями.
[0024] Система 100 персонализированного репозитория объектов может включать в себя сервер 110, который может быть вычислительным устройством или устройствами, которые принимают форму ряда различных устройств, например, стандартного сервера, группы таких серверов или системы стоечных серверов. Например, сервер 110 может быть реализован распределенным образом на нескольких вычислительных устройствах. Кроме того, сервер 110 может быть реализован на персональном компьютере, например портативном компьютере. Сервер 110 может быть примером компьютерного устройства 900, как показано на фиг. 9, или компьютерного устройства 1100, как показано на фиг. 11. Сервер 110 может включать в себя один или несколько процессоров, сформированных на подложке, выполненных с возможностью исполнять одну или более исполняемых машиной инструкций или частей программного обеспечения, встроенного программного обеспечения или их комбинации. Процессоры могут быть полупроводниковыми, то есть, процессоры могут включать полупроводниковый материал, который может выполнять цифровую логику.
[0025] Сервер 110 может хранить или иметь доступ к репозиторию 130 объектов. Репозиторий 130 объектов может хранить информацию об объектах. Объект может быть человеком, местом, предметом, идеей, темой, словом, фразой, абстрактным понятием, конкретным элементом, другой подходящей вещью или любой их комбинацией. В некоторых реализациях, репозиторий 130 объектов может быть базой знаний, в которой хранится информация об объектах. В некоторых реализациях, база знаний хранит информацию об объектах в форме отношений между объектами. Например, объекты в базе знаний могут быть связаны друг с другом посредством маркированных ребер (линий, соединяющих узлы графа), которые представляют отношения. База знаний также может хранить атрибуты объекта. Некоторые базы знаний являются большими, включая иногда миллионы объектов. База знаний с большим количеством объектов и даже ограниченным числом отношений может иметь миллиарды соединений.
[0026] Репозиторий 130 объектов может также включать в себя объекты распознавания изображения, которые могут использоваться, чтобы идентифицировать объект в изображении. Например, репозиторий 130 объектов может включать в себя объекты, которые представляют известные изображения объекта и/или характеристики изображения и используются в процессах распознавания изображений (например, с использованием методов подобия изображений), чтобы идентифицировать объекты в изображениях. Например, характеристики могут быть признаками, предоставляемыми в модель распознавания изображений (например, алгоритм машинного обучения). Репозиторий 130 объектов может представлять собой единую базу знаний, комбинацию отдельных баз знаний, объектов распознавания изображений и/или комбинацию базы знаний и информации изображений. В некоторых реализациях, репозиторий 130 объектов может храниться во внешнем устройстве хранения, доступном для сервера 110. В некоторых реализациях, репозиторий 130 объектов может быть распределен по нескольким устройствам хранения и/или нескольким вычислительным устройствам, например нескольким серверам. Объекты и отношения в базе знаний могут быть доступны для поиска, например, посредством индекса. Например, индекс может включать в себя текст, по которому можно ссылаться на объект. Таким образом, ссылку на базу знаний можно понимать как включающую в себя индекс, который облегчает поиск объекта с использованием текстового эквивалента.
[0027] Сервер 110 также может включать в себя одну или несколько компьютерных памятей. Памяти, например, основная память, могут быть выполнены с возможностью хранить один или несколько сегментов данных либо временно, либо постоянно, полу-постоянно, либо на основе комбинации этих способов. Памяти могут включать в себя любой тип устройства хранения данных, которое хранит информацию в формате, который может считываться и/или исполняться одним или несколькими процессорами. Памяти могут включать в себя энергозависимую память, энергонезависимую память или их комбинацию и хранить модули или подсистемы, которые при их исполнении одним или несколькими процессорами выполняют определенные операции. В некоторых реализациях, модули могут храниться во внешнем устройстве хранения и загружаться в память сервера 110. В некоторых реализациях, модули могут включать в себя подсистему 120 генерации набора объектов. Подсистема 120 генерации набора объектов может разделять объекты в репозитории объектов 130 на фиксированные наборы 132 объектов. Каждый набор в фиксированных наборах 132 объектов может рассматриваться как секция репозитория 130 объектов, которая включает в себя объекты, связанные некоторыми критериями. В некоторых реализациях, секция может содержать метаданные об объекте (например, имя, описание, каноническое изображение), отношения с другими объектами и/или информацию, используемую для обнаружения объекта в тексте, такую как общепринятые имена, прозвища (вымышленные имена), аббревиатуры, псевдонимы и другие сигналы. Каждый фиксированный набор объектов в фиксированных наборах 132 объектов может иметь идентификатор, так что конкретный набор может отслеживаться, идентифицироваться и запрашиваться приложениями или клиентскими устройствами.
[0028] В некоторых реализациях, подсистема 120 генерации набора объектов может генерировать различные типы наборов, такие как наборы на основе местоположения, наборы на основе темы или функциональные наборы. Набор на основе местоположения может включать в себя объекты, связанные с определенной географической ячейкой. Географическая ячейка - это площадь поверхности земли, определяемая границами, например, двумя линиями широты и двумя линиями долготы. Такие ячейки являются обычными для картографических приложений, таких как GOOGLE MAPS. Фиксированный набор объектов на основе местоположения может включать в себя любые известные объекты, находящиеся внутри ячейки. Репозиторий 130 объектов может включать в себя атрибут, который определяет местоположение для объекта или может включать в себя метаданные, идентифицирующие местоположение. Например, объект 'ресторан' в репозитории 130 объектов может иметь атрибут местоположения, определяющий конкретную географическую ячейку или ячейки или координаты широты/долготы. Хотя географические ячейки, т.е. ячейки, используемые в приложении карт, обычно имеют одинаковый размер, не требуется, чтобы наборы объектов на основе местоположения соответствовали одной географической ячейке, но могут быть основаны вместо этого на области, имеющей заданное количество объектов, расположенных в пределах области. Таким образом, например, ячейка для набора объектов на основе местоположения в Нью-Йорке может быть довольно малой (например, десять квадратных миль), поскольку она густонаселена, а ячейка для набора объектов на основе местоположения в западном Вайоминге может составлять сотни квадратных миль, но иметь такое же количество объектов, как и ячейка в Нью-Йорке. Таким образом, например, подсистема 120 генерации набора объектов может объединять смежные географические ячейки до тех пор, пока количество объектов, связанных с объединенной ячейкой, не достигнет минимального количества и не сформирует ячейку на основе местоположения для фиксированного набора объектов.
[0029] Подсистема 120 генерации набора объектов может также генерировать фиксированные наборы объектов на основе темы. В некоторых реализациях, подсистема 120 генерации набора объектов может генерировать наборы на основе темы путем кластеризации объектов с использованием обычных методов кластеризации на основе того, каким образом связаны объекты. Например, кластеризация может основываться на характеристиках объектов, например, представлениях, обученных на записях поисков, или на тексте, таком как текст из документов, индексированных для поисковой системы. В некоторых реализациях, подсистеме 120 генерации набора объектов может быть задан начальный объект, и он может сформировать кластер на основе начального объекта. В некоторых реализациях, один или несколько наборов на основе темы могут основываться на совокупностях (коллекциях), идентифицированных в репозитории объектов. Например, объекты в репозитории 130 объектов могут включать в себя указание одной или нескольких совокупностей, к которым принадлежит объект, или репозиторий 130 объектов может включать в себя определение совокупности или, другими словами, требования для включения в совокупность, и объекты могут оцениваться по отношению к требованиям для определения членства в совокупности. Подсистема 120 генерации набора объектов может использовать членство объектов в совокупности для генерации одного или нескольких наборов на основе темы. В некоторых реализациях, подсистема 120 генерации набора объектов может вычислять представление для каждой секции, связанной с темой. Представление может использоваться для вычисления сходства с запросным представлением, например, сгенерированным подсистемой идентификации набора, чтобы определять, какие наборы больше всего сходны с запросным представлением. Например, представление может представлять центр кластера.
[0030] Подсистема 120 генерации набора объектов может также генерировать функциональные наборы объектов. Функциональный набор может включать в себя объекты, которые считаются наиболее популярными, например, объекты, которые чаще всего ищут или к которым получают доступ, например, на основе появления в поисковых запросах. Функциональный набор также может быть основан на возможности, например, на возможности переводить с одного языка на другой. В качестве другого примера, функциональный набор может включать в себя объекты, которые могут встречаться при использовании или запрашиваться конкретным приложением. Разумеется, эти функциональные наборы представлены только в качестве примеров, и функциональные наборы объектов могут включать в себя любую совокупность объектов, общих для конкретной цели, характеристики или функции. В некоторых реализациях, подсистема 120 генерации набора объектов может генерировать фиксированные множества объектов, которые являются комбинациями из вышеперечисленного. Например, подсистема 120 генерации набора объектов может генерировать фиксированный набор объектов для ресторанов в Сан-Хосе, шт. Калифорния, или другой набор для распознавания произведений искусства в Париже. В некоторых реализациях, подсистема 120 генерации набора объектов может включать в себя пользовательский интерфейс, который позволяет пользователю корректировать один или несколько фиксированных наборов объектов.
[0031] Подсистема 120 генерации набора объектов может также периодически обновлять фиксированные наборы объектов 132. Например, когда объекты добавляются, удаляются или обновляются в репозитории 130 объектов, подсистема 120 генерации набора объектов может определять изменения в фиксированных наборах. В некоторых реализациях, подсистема 120 генерации набора объектов может определять дельты для каждого набора, например список объектов, подлежащих удалению из фиксированного набора, и список объектов, подлежащих добавлению к фиксированному набору. Подсистема 120 генерации набора объектов может предоставлять дельты на клиентское устройство 150 либо посредством принудительной рассылки (push, пуш-уведомления), либо посредством извлечения (pull). Дельты уменьшают объем данных, передаваемых между сервером 110 и клиентским устройством 150, в то же время позволяя клиентскому устройству 150 иметь самые актуальные наборы объектов. Это особенно полезно, когда конкретный фиксированный набор объектов часто изменяется, например, набор объектов, представляющих фильмы. В некоторых реализациях, подсистема 120 генерации набора объектов может также создавать версию каждого из фиксированных наборов, также называемых секциями. Например, подсистема 120 генерации набора объектов может изменять формат данных секций или может изменять секции другим способом, который нарушает схему. Когда схема нарушена, приложениям, использующим секции, может понадобиться соответствующее обновление для использования новых секций. Соответственно, подсистема 120 генерации набора объектов может создавать версии фиксированных наборов, так что приложения, которые не были обновлены, могут продолжать использовать более старые версии без сбоев. В некоторых случаях, клиентское устройство 150 может включать в себя две версии той же самой фиксированной секции (например, секции, представляющей конкретное местоположение), до тех пор, пока не будут обновлены приложения, использующие старую схему.
[0032] В некоторых реализациях, подсистема 120 генерации набора объектов может также обучать и поддерживать модель 122 предсказания набора. Модель предсказания набора, такая как модель 122 предсказания набора, может быть любым типом алгоритма машинного обучения, таким как нейронная сеть долгой краткосрочной памяти (LSTM), нейронная сеть с прямыми связями, метод опорных векторов (SVM) и т.д., которые могут предсказывать фиксированный набор объектов при заданном наборе признаков или сигналов. Эти признаки могут включать в себя местоположение устройства, текст или изображения в содержимом (например, документах, записях поиска и т.д.), приложения, обычно используемые для различных задач, и т.д. В качестве алгоритма машинного обучения, модель предсказания набора имеет два режима: режим обучения и режим (логического) вывода (умозаключения). Например, в режиме обучения, модель 122 предсказания набора может использовать маркированные записи 134 поиска и маркированные автоматически просканированные (поисковым агентом) документы 136 для предсказания одного или нескольких фиксированных наборов объектов из фиксированных наборов 132 объектов с учетом набора сигналов. Ярлыки (метки) могут создаваться автоматически или людьми-экспертами. Сигналы могут быть взяты из содержимого, генерируемого на клиентском устройстве, таком как устройство 150, или из записей поиска, таких как записи 134 поиска или специфические для пользователя записи, такие как индекс 172 захвата экрана. В режиме обучения, модель 122 предсказания набора может также принять местоположение в качестве сигнала (например, текущее местоположение географической ячейки, координаты и т.д.), чтобы предсказать набор объектов для заданного местоположения. Во время обучения, параметры модели обновляются, чтобы лучше отражать метки, присвоенные тексту в обучающих документах. В режиме логического вывода, модель 122 предсказания набора будет предсказывать один или несколько фиксированных наборов объектов из фиксированных наборов 132 объектов в ответ на набор признаков, который представляет сигналы. Каждый предсказанный набор может иметь связанную с ним оценку доверия или оценку вероятности, указывающую уровень уверенности в том, что предоставленные признаки предсказывают конкретный фиксированный набор объектов. В некоторых реализациях, оценка доверия может основываться на мере сходства, которая может различаться в зависимости от типа набора. Например, оценка доверия для наборов на основе местоположения может основываться на физическом расстоянии от заданного местоположения, например, текущего местоположения вычислительного устройства. Оценка доверия для набора на основе темы может основываться на расстоянии между представлениями с запросом, например, представлением, сгенерированным на основе сигналов от клиентского устройства. Такие сигналы могут включать в себя текст, недавно увиденный на экране, состояние или близость внешних устройств, содержание последних поисков, сформулированные интересы пользователей, приложение, установленное или выполняемое на клиентском устройстве, временную метку и т.д.
[0033] После обучения, и затем на периодической основе для учета обновлений, подсистема 120 генерации набора объектов может предоставить модель 122 предсказания набора на клиентское устройство 150. Клиентское устройство 150 может сохранить модель как модель 164 предсказания набора. В некоторых реализациях, клиентское устройство 150 может персонализировать модель 164 предсказания набора путем выполнения дополнительного обучения. Обучение может использовать информацию из записей поиска, связанных с пользователем, например, из записей поиска, хранящихся на клиентском устройстве 150 или индексе 172 захвата (запоминания копии содержимого) экрана. Таким образом, модель 164 предсказания набора может быть копией модели 122 предсказания набора или персонализированной копией модели 122 предсказания набора.
[0034] Сервер 110 может включать в себя записи 134 поиска и автоматически просканированные документы 136. Записи 134 поиска могут включать в себя журналы поиска, агрегированные данные, собранные из запросов, или любые другие данные на основе запросов. В некоторых реализациях, записи 134 поиска могут генерироваться поисковой системой в обычном процессе генерации результатов поиска. В некоторых реализациях, записи 134 поиска могут быть сохранены на другом вычислительном устройстве, доступном для сервера 110. В некоторых реализациях, записи поиска могут быть распределены по множеству вычислительных устройств. Автоматически просканированные документы 136 могут быть документами, полученными, например, с использованием известных или позже разработанных методов автоматического веб-сканирования. В некоторых реализациях, автоматически просканированные документы 136 представляют документы, доступные через Интернет, и могут быть индексированной формой документов.
[0035] Система 100 персонализированного репозитория объектов может включать в себя вычислительное устройство 150. Вычислительное устройство 150 может быть любым мобильным вычислительным устройством, таким как смартфон или другое портативное вычислительное устройство, планшет, носимое вычислительное устройство и т.д., которое работает в закрытой мобильной среде, а не обычной открытой веб-среде. Вычислительным устройством 150 могут быть также другие типы персональных электронных вычислительных устройств, таких как портативный компьютер или сетевой компьютер, настольный компьютер, телевизор с процессором и т.д. Вычислительное устройство 150 может быть примером компьютерного устройства 1000 или 1050, как показано на фиг. 10. Вычислительное устройство 150 может быть вычислительным устройством, используемым одним пользователем, или может быть вычислительным устройством, совместно используемым множеством пользователей.
[0036] Вычислительное устройство 150 может включать в себя один или несколько процессоров, сформированных на подложке, выполненных с возможностью исполнять одну или несколько исполняемых машиной инструкций или частей программного обеспечения, встроенного программного обеспечения или их комбинации. Процессоры могут быть основанными на полупроводниках, то есть процессоры могут включать в себя полупроводниковый материал, который может выполнять цифровую логику. Таким образом, вычислительное устройство 150 может включать в себя одну или несколько компьютерных памятей, выполненных с возможностью хранить один или несколько сегментов данных либо временно, либо постоянно, полу-постоянно, либо на основе комбинации этих способов. Таким образом, вычислительное устройство 150 может включать в себя приложения 155, которые представляют собой исполняемые машиной инструкции в форме программного обеспечения, встроенного программного обеспечения или их комбинации. Компоненты, идентифицированные в приложениях 155, могут быть частью операционной системы или могут быть приложениями, разработанными для работы с использованием операционной системы. В некоторых реализациях, приложения 155 могут быть мобильными приложениями. Обычно мобильные приложения работают в закрытой среде, что означает, что пользователь использует отдельные приложения для выполнения действий, обычно выполняемых в среде веб-браузера. Например, вместо того, чтобы переходить на bookit.com для бронирования отеля, пользователь вычислительного устройства 150 может использовать мобильное приложение в приложениях 155, предоставляемых посредством bookit.com. Приложения 155 могут также включать в себя веб-приложения, которые могут отражать мобильное приложение, например, предоставляющее то же самое или подобное содержимое, что и мобильное приложение. В некоторых реализациях, приложения 155 могут включать в себя функции, выполняемые операционной системой вычислительного устройства 150.
[0037] Приложения 155 могут включать в себя агент 160 содержимого экрана и подсистема 162 идентификации набора. В некоторых реализациях, одно или несколько из этих приложений могут быть предоставлены операционной системой (не показана) вычислительного устройства 150. В некоторых реализациях, одно или несколько из этих приложений могут быть загружены и установлены пользователем.
[0038] Агент 160 содержимого экрана может включать в себя различные функциональные возможности. В некоторых реализациях, агент 160 содержимого экрана может быть выполнен с возможностью получать текстовую информацию, представляемую на экране вычислительного устройства, из интерфейса прикладной программы (API). В некоторых реализациях, агент 160 содержимого экрана может быть встроен в операционную систему, которая может определять содержимое текстовых полей, отображаемых на экране. Текстовую информацию можно рассматривать как захваченное содержимое экрана, и каждый вызов API или каждый раз, когда определяется содержимое текстовых полей, может рассматриваться как захват (копия содержимого) экрана. В некоторых реализациях, агент 160 содержимого экрана может быть выполнен с возможностью захватывать изображение, отображаемое на экране, путем копирования или считывания содержимого буфера кадров устройства. Таким образом, захваченный экран может быть изображением и может упоминаться как захваченное изображение. Агент 160 содержимого экрана может захватывать экран с интервалами. Интервал может быть малым, например, каждые полсекунды или каждую секунду. В некоторых реализациях, агент 160 содержимого экрана может быть выполнен с возможностью захватывать экран каждый раз, когда происходит событие касания (например, каждый раз, когда пользователь касается экрана для прокрутки, масштабирования, клика по ссылке и т.д.), в ответ на явный пользовательский запрос или команду, или когда устройство переходит из одного мобильного приложения в другое мобильное приложение. В некоторых реализациях, агент 160 содержимого экрана может увеличивать интервал, с которым происходит захват экрана, когда экран не изменяется. Другими словами, когда экран является статическим, агент 160 содержимого экрана может захватывать изображения менее часто.
[0039] Агент 160 содержимого экрана может подавать захваченное содержимое или экранные изображения и метаданные в подсистему распознавания, которая может быть частью агента 160 содержимого экрана и может располагаться на вычислительном устройстве 150. В некоторых реализациях, подсистема распознавания может находиться на сервере, таком как сервер 110. Когда изображение захвата экрана подается в подсистему распознавания, подсистема распознавания может выполнять распознавание изображения и текста на изображении, чтобы идентифицировать слова, объекты, логотипы и т.д. в содержимом изображения захвата экрана. Подсистема распознавания может быть выполнена с возможностью осуществлять различные типы распознавания, такие как распознавание символов, распознавание изображений, распознавание логотипов и т.д., с использованием традиционных или позже разработанных методов. Таким образом, подсистема распознавания может генерировать распознанное содержимое, которое может быть получено как из слов, так и из изображений.
[0040] Агент 160 содержимого экрана может также определять и использовать метаданные об изображении захвата экрана. Метаданные могут включать в себя временную метку, тип мобильного устройства, идентификатор мобильного устройства, мобильное приложение, исполнявшееся при захвате содержимого, например приложение, которое визуализировало содержимое, отображенное на экране, и т.д. В некоторых реализациях, метаданные могут также включать в себя то, какие приложения активны, местоположение устройства, окружающий свет, движение устройства и т.д. В некоторых реализациях, метаданные могут включать в себя сигналы от других вычислительных устройств. Например, агент 160 содержимого экрана может обеспечиваться или может получать информацию от внешних устройств, таких как электронные приборы, телевизоры, персональные помощники, музыкальные устройства, системы сигнализации и т.д., которые выполнены с возможностью осуществлять связь с клиентским устройством 150. Например, устройство составления электронного списка, активируемое голосом, может хранить список продуктов, подлежащих покупке. Этот список может быть передан на клиентское устройство 150 либо непосредственно из устройства составления электронного списка, либо через информацию учетной записи пользователя. В качестве другого примера, у пользователя может иметься планшет и смартфон, которые совместно используют информацию; или муж и жена могут иметь смартфоны, которые совместно используют информацию. Таким образом, в некоторых реализациях, информация, доступная клиентскому устройству 150, может включать в себя информацию, которая предоставляется другими устройствами. Некоторая или вся из этой информации может быть включена в метаданные, связанные с изображением захвата экрана.
[0041] Система может использовать метаданные и информацию, полученные с помощью изображения захвата экрана, для поддержки развитой логики (интеллекта) устройства, которая анализирует информацию, чтобы помочь пользователю выполнять задачи, осуществляемые на мобильном устройстве. Например, пользователь, ведущий диалог с другом, может включить предложение посмотреть фильм. Развитая логика может идентифицировать предложение и предложить действие для просмотра обзора фильма или для покупки билетов. Агент 160 содержимого экрана может использовать репозиторий объектов для определения того, включает ли в себя распознанное содержимое известные объекты. Хотя агент 160 содержимого экрана может использовать общедоступный репозиторий объектов, такой как репозиторий 130 объектов, это требует соединения с сервером 110 и может замедлить процесс распознавания и предложения действия. Соответственно, клиентское устройство 150 может иметь персонализированный репозиторий 176 объектов, хранящийся на клиентском устройстве 150. Персонализированный репозиторий 176 объектов может представлять собой совокупность фиксированных наборов объектов, которые получены с сервера 110, например, из фиксированных наборов 132 объектов. Персонализированный репозиторий 176 объектов может генерироваться и поддерживаться подсистемой 162 идентификации набора.
[0042] В некоторых реализациях, агент 160 содержимого экрана может включать в себя подсистему индексирования, выполненную с возможностью индексировать захваченное содержимое. Индекс также может связывать изображение захвата экрана с текстом, объектами, изображениями, логотипами и т.д., идентифицированными на изображении. Таким образом, например, подсистема индексирования может генерировать записи индекса (например, хранящиеся в индексе 172 захвата экрана) для захваченного изображения и захваченного содержимого. В некоторых реализациях, подсистема индексирования может находиться на сервере, таком как сервер 110, и агент 160 содержимого экрана может предоставлять захваченное изображение и захваченное содержимое на сервер. Индекс может быть инвертированным индексом, где ключевое значение (например, слово, фраза, объект, изображение, логотип и т.д.) связано со списком изображений (например, копиями захваченных экранных изображений), которые включают ключевое значение. Индекс может включать в себя метаданные (например, где на захваченном изображении возникает ключевое значение, ранг для ключевого значения для изображения и т.д.), связанные с каждым захваченным изображением в списке. В некоторых реализациях, индекс также может включать в себя список захваченных изображений, индексированных временной меткой. Подсистема индексирования может хранить индекс в памяти, например, в индексе 172 захвата экрана. Конечно, в некоторых реализациях, система может хранить индекс в учетной записи пользователя на сервере в дополнение к или вместо вычислительного устройства 150. Пользователь вычислительного устройства 150 может управлять тем, когда агент 160 содержимого экрана активен. Например, пользователь может задать, что агент 160 содержимого экрана активен только тогда, когда выполняются другие указанные приложения 155 (например, только в мобильном приложении социальных сетей). Пользователь также может вручную включать и выключать агент 160 содержимого экрана, например, через приложение настроек. В некоторых реализациях, пользователь может вызвать агент 160 содержимого экрана с помощью жеста или действия. Отключение агента 160 содержимого экрана также может отключить предсказание и обслуживание персонализированного репозитория объектов, описанного здесь.
[0043] Вычислительное устройство 150 может также включать в себя подсистема 162 идентификации набора. Подсистема 162 идентификации набора может быть выполнен с возможностью определять то, какие наборы объектов в фиксированных наборах 132 объектов должны быть включены в персонализированный репозиторий 176 объектов. Подсистема 162 идентификации набора может использовать информацию, собранную или сгенерированную агентом 160 содержимого экрана, а также модель 164 предсказания набора и параметры использования набора, чтобы определить, какие наборы являются потенциально релевантными для пользователя, и получать эти наборы от сервера 110. Например, подсистема 162 идентификации набора может собирать сигналы в качестве входа для модели 164 предсказания набора. Сигналы могут включать в себя информацию и метаданные, такие как местоположение устройства, время суток, состояние различных внешних устройств, осуществляющих связь с клиентским устройством 150, близость к другим устройствам, информацию из содержимого в изображении захвата экрана или серии изображений захвата экрана, информацию из индекса 172 захвата экрана или записей поиска для пользователя, информацию в пользовательском профиле и т.д. Как объяснялось выше, внешние устройства, такие как электронные приборы, телевизоры, персональные помощники, музыкальные устройства, системы сигнализации и т.д., могут быть выполнены с возможностью осуществлять связь и предоставлять информацию статуса на клиентское устройство 150, и информация статуса может быть включена в сигналы, генерируемые подсистемой 162 идентификации. Информация, используемая для генерации сигналов, может быть сохранена как метаданные в индексе 172 захвата экрана или сгенерирована/собрана в то время, когда подсистема 162 идентификации набора определяет фиксированные наборы объектов, подходящие для персонализированного репозитория 176 объектов.
[0044] Как обсуждалось ранее, модель 164 предсказания набора может быть копией модели 122 предсказания набора или может быть персонализированной версией модели 122 предсказания набора. Когда модель 164 предсказания является персонализированной версией, подсистема 162 идентификации набора может предоставлять обучающие примеры из данных, хранящихся на клиентском устройстве 150, или из пользовательского профиля, связанного с пользователем клиентского устройства 150. Например, обучающие примеры могут генерироваться с использованием индекса 172 захвата экрана или записей поиска для пользователя 180. В некоторых реализациях, клиентское устройство, с разрешения пользователя, может предоставлять обновления в модель 122 предсказания набора на сервере 110, так что модель предсказания набора может обучаться на предсказаниях, сделанных на многих клиентских устройствах.
[0045] Подсистема 162 идентификации набора может предоставлять сигналы, например, набор признаков, в модель 164 предсказания набора в режиме логического вывода. В ответ, модель 164 предсказания набора может затем предоставить идентификаторы одного или нескольких предсказанных фиксированных наборов объектов в подсистему 162 идентификации набора. Затем блок 162 идентификации набора может ранжировать предсказанные фиксированные наборы объектов. Клиентское устройство 150 может быть устройством с малым коэффициентом формы (форм-фактором), что ограничивает пространство хранения на устройстве. Соответственно, подсистема 162 идентификации набора может ранжировать предсказанные фиксированные наборы объектов, чтобы определить, какие фиксированные наборы включать в персонализированный репозиторий 176 объектов. В некоторых реализациях, подсистема 162 идентификации набора может работать в пределах параметров использования набора, выбранных пользователем клиентского устройства. Параметры использования набора могут включать в себя максимальное количество фиксированных наборов для хранения на клиентском устройстве, максимальный объем памяти, используемой в персонализированном репозитории 176 объектов, минимальный ранг или их комбинацию. Если количество предсказанных наборов не может быть размещено на клиентском устройстве 150, то подсистема 162 идентификации набора может выбрать такое количество из наборов с наивысшим рангом, сколько допускается параметрами использования набора.
[0046] В некоторых реализациях, ранжирование может быть определено с помощью модели 164 предсказания набора. В некоторых реализациях, подсистема 162 идентификации набора может корректировать ранжирования, обеспечиваемые моделью 164 предсказания набора. Например, если конкретный фиксированный набор требуется веб-приложению, к которому пользователь обращается часто, или которое только что было установлено, подсистема 162 идентификации набора может повысить ранг этого конкретного фиксированного набора. Подсистема 162 идентификации набора также может использовать метаданные для корректировки ранга. Например, если Алиса и Тед путешествуют и дали согласие на совместное использование данных, клиентское устройство для Алисы может определить, что клиентское устройство Теда уже имеет определенный фиксированный набор, включенный в персонализированный репозиторий объектов на его устройстве. Соответственно, когда клиентское устройство Алисы обнаруживает устройство Теда в непосредственной близости, подсистема 162 идентификации набора на устройстве Алисы может понизить ранг этого конкретного фиксированного набора на ее устройстве.
[0047] В некоторых реализациях, подсистема 162 идентификации набора может генерировать ранжирование предсказанных фиксированных наборов на периодической основе или после некоторого события, такого как установка нового приложения, активация приложения, которое не использовалось в течение предопределенного периода времени, когда изменяется доступное пространство, например, устройство становится ниже по доступному объему памяти (дисковому пространству) (например, ниже определенного процента), или некоторое действие освобождает определенный процент пространства, когда пользователь меняет местоположение, и т.д. Подсистема 162 идентификации набора может также обновлять персонализированный репозиторий 176 объектов в ответ на ранжирование. Например, подсистема 162 идентификации набора может периодически обновлять персонализированный репозиторий 176 объектов, когда установлено приложение, использующее определенный фиксированный набор объектов, или когда ранг для фиксированного набора объектов становится более высоко ранжированным, чем один из наборов в персонализированном репозитории 176 объектов на данный момент. Например, если Алиса начнет изучать поездку на Гавайи, в конечном итоге, модель 164 предсказания набора будет предсказывать фиксированную секцию, связанную с Гавайями, на основе содержимого (например, из индекса 172 захвата экрана или записей поиска), которое Алиса просматривала. Поскольку этот набор ранее никогда не ранжировался достаточно высоко, чтобы быть включенным в персонализированный репозиторий 176 объектов, как только ранг превысит ранг набора, находящегося в текущее время в персонализированном репозитории 176 объектов, или когда изменение в ранге превысит некоторый предопределенный порог, подсистема 162 идентификации набора может автоматически обновить персонализированный репозиторий 176 объектов или может получить одобрение от Алисы, прежде чем включать этот конкретный набор. По возвращении Алисы из поездки на Гавайи, или если она не отправится туда и не обращается к содержимому о Гавайях в течение определенного периода времени, ранг конкретной секции может снизиться, например, ниже другой секции, не находящейся в персонализированном репозитории 176 объектов, или снизиться на предопределенный процент. Это может запустить исполнение подсистемы 162 идентификации набора, так что другая секция (т.е., другой фиксированный набор объектов) может занять ее место в персонализированном репозитории 176 объектов.
[0048] Обновление персонализированного репозитория 176 объектов может осуществляться множеством способов. В некоторых реализациях, весь репозиторий удаляется и заменяется фиксированными наборами, выбранными на основе ранга и параметров использования набора. В некоторых реализациях, параметры использования набора могут устанавливаться и управляться пользователем. В некоторых реализациях, подсистема 162 идентификации набора может определить, является ли конкретный фиксированный набор, который должен находиться в персонализированном репозитории 176 объектов, уже существующим в персонализированном репозитории 176 объектов. Если он существует, то подсистема 162 идентификации набора может либо не делать ничего, либо определить, изменился ли набор, т.е. был обновлен на сервере 110. Если обновление произошло, то подсистема 162 идентификации набора может загрузить весь набор или загрузить дельту для применения к набору. Подсистема 162 идентификации набора может удалять наборы из персонализированного репозитория 176 объектов, чтобы освободить место для наборов с более высоким рангом.
[0049] Вычислительное устройство 150 может осуществлять связь с сервером 110 и другими мобильными устройствами по сети 140. Сеть 140 может представлять собой, например, Интернет, или сеть 160 может быть проводной или беспроводной локальной сетью (LAN), глобальной сетью (WAN) и т.д., реализованными с использованием, например, шлюзовых устройств, мостов, коммутаторов и/или т.д. Сеть 140 также может представлять собой сеть сотовой связи. Через сеть 140 сервер 110 может осуществлять связь и передавать данные на/от вычислительного устройства 140, а вычислительное устройство 140 может осуществлять связь с другими мобильными устройствами (не показаны).
[0050] Система 100 персонализированного репозитория объектов представляет собой одну примерную конфигурацию, и реализации могут включать в себя другие конфигурации. Например, некоторые реализации могут объединять один или несколько компонентов агента 160 содержимого экрана, подсистемы 162 идентификации набора или модели 164 предсказания набора в один модуль или подсистему. Аналогичным образом, некоторые реализации могут объединять один или несколько из подсистемы 120 генерации набора объектов или модели 122 предсказания набора в один модуль или приложение. В качестве другого примера, одно или несколько хранилищ данных, таких как индекс 172 захвата экрана, персонализированный репозиторий 176 объектов или пользовательские профили на клиентском устройстве 150 или репозиторий 130 объектов, фиксированные наборы 132 объектов, записи 134 поиска или автоматически просканированный документ 136 могут быть объединены в одно хранилище данных или могут быть распределены по нескольким вычислительным устройствам или могут храниться в другом местоположении.
[0051] В той степени, в которой система 100 персонализированного репозитория объектов собирает и хранит данные, специфичные для пользователя, или может использовать персональную информацию, пользователям может быть предоставлена возможность управлять сбором пользовательской информации (например, информации о социальных сетях пользователя, социальных действиях или деятельности, предпочтениях пользователя или текущем местоположении пользователя) или управлять тем, следует ли и/или каким образом хранить изображения захвата экрана или содержимое. Например, система может воздерживаться от захвата содержимого для определенных приложений, таких как банковские приложения, приложения ʺЗдоровьеʺ или другие подобные приложения, или когда захват такого содержимого нарушает условия обслуживания. Кроме того, пользователю может быть предоставлена возможность отключить захват содержимого экрана для конкретных приложений или категорий приложений. Кроме того, некоторые данные могут обрабатываться одним или несколькими способами, прежде чем они будут сохранены или использованы, так что личная идентифицируемая информация удаляется. Например, идентификатор пользователя может быть обработан таким образом, что никакая персональная идентифицируемая информация не может быть определена для пользователя, или географическое местоположение пользователя может быть обобщено, когда получается информация о местоположении (например, до уровня города, почтового индекса или штата), так что конкретное местоположение пользователя не может быть определено. Таким образом, пользователь может управлять тем, каким образом информация о пользователе собирается и используется системой персонализированного репозитория объектов.
[0019] Фиг. 2 иллюстрирует примерный дисплей (экран) пользовательского интерфейса 200 для задания параметров использования набора для персонализированного репозитория объектов в соответствии с раскрытым изобретением. Дисплей может представлять собой дисплей мобильного устройства или другого персонального вычислительного устройства, такого как клиентское устройство 150 на фиг. 1. В некоторых реализациях, пользовательский интерфейс может обеспечиваться операционной системой клиентского устройства или может обеспечиваться конкретным приложением, например, из приложений 155 на фиг. 1. Пользовательский интерфейс 200 включает в себя средства управления 205 для агента содержимого, такого как агент 160 содержимого на фиг. 1. Средства управления 205 могут регулировать то, исполняется ли агент содержимого, каким образом исполняется агент содержимого, и какие действия выполняет агент содержимого. Пользовательский интерфейс 200 может также включать в себя параметры использования набора для персонализированного репозитория объектов. Параметры использования набора могут включать в себя одно или несколько из максимальной памяти 210, максимального количество наборов 215 или процента памяти 220. Максимальная память 210 может устанавливать ограничение на объем памяти, используемой в персонализированном репозитории объектов, таком как персонализированный репозиторий 176 объектов на фиг. 1. Клиентское устройство может загружать и хранить фиксированные наборы объектов (секции), но не превышать максимальную память 210.
[0020] Параметры использования набора могут также включать в себя максимальное количество наборов 215. Максимальное количество наборов 215 ограничивает количество фиксированных наборов объектов, которые клиентское устройство будет включать в персонализированный репозиторий объектов. Другими словами, клиентское устройство может загружать и хранить только заданное количество наборов. Процент памяти 220 может предлагать гибкое ограничение размера персонализированного репозитория объектов. Например, когда клиентское устройство имеет больше памяти, параметр процента памяти 220 может допускать более крупный персонализированный репозиторий объектов, но по мере уменьшения пространства памяти на клиентском устройстве, этот параметр может ограничивать наборы, хранящиеся в персонализированном репозитории объектов. Пользовательский интерфейс 200 может также позволить пользователю выбирать комбинацию параметров использования набора, например, с помощью флажков, для включения или выключения параметров использования набора. Таким образом, пользователь может управлять размером персонализированного репозитория объектов на своем устройстве, что, в свою очередь, управляет тем, какие секции включены в репозиторий. Пользовательский интерфейс 200 может также включать в себя средство 225 управления, которое позволяет пользователю специально выбирать один или несколько наборов объектов для включения в персонализированную модель объекта. Когда пользователь специально использует средство 225 управления для выбора секции репозитория объектов, система может ранжировать релевантность этой секции высоко, чтобы она всегда включалась в персонализированную модель объектов.
[0052] Фиг. 3 иллюстрирует примерный дисплей 300 содержимого, которое предоставляет контекст для определения того, какие наборы являются наиболее релевантными для пользователя вычислительного устройства, в соответствии с раскрытыми реализациями. Дисплей 300 может быть дисплеем мобильного устройства или другого вычислительного устройства, такого как клиентское устройство 150 на фиг. 1. В примере на фиг. 3, выбран текст ʺAlien Invadersʺ. Выбор может быть сделан пользователем или может быть сделан автоматически с помощью клиентского устройства (например, агента содержимого или приложения для предложения операции, исполняющегося на клиентском устройстве). Система предоставила четыре предложенные операции для выбора 305, а именно операцию 340, которая может предназначаться для мобильного приложения, которое обеспечивает локальное время кино, операцию 325 просмотра фильма и операцию 320 базы данных кино. Пользовательский интерфейс может выбирать операцию 340, 325 и 320 на основе идентификация выбора 305 как объекта, который существует в персонализированном репозитории объектов. Таким образом, система может предоставлять экран 300 даже без соединения с сервером и с серверным репозиторием объектов.
[0053] Фиг. 4 иллюстрирует пример экрана пользовательского интерфейса 400 для предложения дополнительных секций для включения в персонализированный репозиторий объектов в соответствии с раскрытыми реализациями. Пользовательский интерфейс 400 может быть сгенерирован на мобильном устройстве или другом вычислительном устройстве, таком как клиентское устройство 150 на фиг. 1. В примере согласно фиг. 4, пользователь ввел текст в интерфейс 405 поиска. Интерфейс 405 поиска может быть предназначен для браузера или мобильного приложения, подобного браузеру, но может быть из любой панели поиска в любом приложении. Система может анализировать текст, предоставленный на интерфейс 405 поиска, и определять, например, с помощью подсистемы идентификации набора с использованием модели предсказания набора, что текст является высоко релевантным для фиксированного набора объектов на основе темы. Высокая релевантность может быть определена на основе высокой оценки доверия или вероятности из модели предсказания набора. Высокая релевантность может основываться не только на содержимом пользовательского интерфейса 400, но и на ранее представленном содержимом. Например, пользователь, возможно, просматривал отели на Гавайях в приложении бронирования или, возможно, читал о вещах, которые можно увидеть на Гавайях. Хотя клиентское устройство может не иметь объекта, относящегося к Гавайям в текущем персонализированном репозитории объектов, модель предсказания набора может распознать несколько слов или изображений, которые предсказывают набор. В некоторых реализациях, подсистема идентификации набора может непрерывно анализировать текст для соответствующих моделей. В некоторых реализациях, подсистема идентификации набора может вызываться во время использования интерфейса поиска.
[0054] Когда вероятность фиксированного набора объектов указывает на высокую релевантность, система может автоматически загружать и сохранять фиксированный набор объектов для Гавайев, также упоминаемых как секция Гавайи. В некоторых реализациях, это может быть набор на основе местоположения для всех объектов, расположенных на Гавайях, или набор на основе темы или их комбинация. В некоторых реализациях, пользовательский интерфейс может включать в себя окно 410 подтверждения. Окно 410 подтверждения может позволить пользователю принимать или отклонять предложение. Если пользователь отклоняет предложение, система может не загружать секцию Гавайи. Если пользователь принимает предложение, система может загрузить секцию Гавайи и может удалить одну или несколько секций, находящихся в персонализированном репозитории объектов на данный момент, чтобы освободить место для новой секции, как более подробно описано в отношении фиг. 7.
[0055] Фиг. 5 иллюстрирует другой пример экрана пользовательского интерфейса 500 для предложения дополнительных наборов для включения в персональный репозиторий объектов в соответствии с раскрытыми реализациями. Пользовательский интерфейс 500 может быть сгенерирован на мобильном устройстве или другом вычислительном устройстве, таком как клиентское устройство 150 на фиг. 1. В примере согласно фиг. 5, пользователь только что установил приложение 505 бронирования столиков. В ответ на процесс установки, подсистема идентификации набора может определить, что приложение 505 явно запросило конкретный фиксированный набор объектов или, например, с использованием подсистемы предсказания набора, можно обратиться к конкретному фиксированному набору. Соответственно, пользователю может быть предоставлено окно 510 подтверждения. Подобно окну 410 подтверждения, окно 510 подтверждения может предоставить возможность пользователю выбрать загрузку конкретной секции или отклонить загрузку. В некоторых реализациях, приложение 505 может генерировать окно 510. В некоторых реализациях (не показаны), процесс установки приложения или подсистема идентификации набора может автоматически загружать конкретный фиксированный набор объектов.
[0056] Фиг. 6 иллюстрирует блок-схему примерного процесса 600 для генерирования и обновления фиксированных наборов объектов в соответствии с раскрытыми реализациями. Процесс 600 может выполняться посредством системы персонализированного репозитория объектов, такой как система 100 на фиг. 1. Процесс 600 может использоваться, чтобы генерировать и поддерживать различные секции репозитория объектов, то есть фиксированные наборы объектов. Репозиторий объектов может представлять собой любой большой репозиторий объектов, например репозиторий 130 объектов на фиг. 1. Процесс 600 может начинаться с генерирования наборов объектов на основе местоположения (605). Набор объектов на основе местоположения, может представлять собой любые объекты в репозитории объектов, которые расположены в конкретной ячейке. Ячейка может быть определена границами, например, линиями, соединяющими три или более географические координаты. Ячейка может соответствовать одной или нескольким географическим ячейкам (например, ячейкам, определенным приложением карт). Система может также генерировать фиксированные наборы объектов на основе темы (610). Наборы на основе темы могут быть сформированы путем кластеризации, по подобию или соединению с начальным объектом, по членству в совокупности и т.д. Система также может генерировать функциональные наборы объектов (615). Функциональные наборы могут быть комбинациями наборов на основе местоположения и тематических наборов, могут быть основаны на использовании конкретным приложением, могут быть основаны на популярности (т.е. наиболее часто используются для поиска объектов и/или появляются в большинстве автоматически просканированных документов), могут быть основаны на задаче или действии и т.д. Этапы 605-615 могут выполняться в начальный момент времени и для обновления наборов. Например, в начальный момент времени, система может выполнять этапы 605-615, чтобы генерировать начальные наборы объектов. Впоследствии, система может выполнять этапы 605-615 для обновления исходных наборов, добавления новых наборов и т.д.
[0057] Система может создавать версии фиксированных наборов объектов. Например, когда изменения формата набора вызвали бы сбой приложения, которое использует набор, система может сохранить предыдущие версии и генерировать новые версии после изменения схемы. Таким образом, система может обрабатывать изменения схемы таким образом, чтобы не создавать ошибок на клиентских устройствах. Соответственно, система может определить, включают ли в себя вновь сгенерированные наборы изменения схемы (620). Если это так, то вновь сгенерированным наборам (например, из этапов 605-615) может быть присвоен идентификатор новой версии (625). Идентификатор версии позволит приложениям, которые используют наборы, правильно загружать и использовать соответствующие версии. Никакой дельта-набор не требуется, если обновления связаны с изменением схемы. Если нет изменения схемы (620, Нет), система может генерировать дельту для каждого набора (630). Дельты используются, когда клиентские устройства загружают только изменения в фиксированных наборах объектов, а не выполняют удаление всех фиксированных наборов в персонализированной модели объектов с последующим сохранением самых последних наборов из фиксированных наборов объектов с наивысшим рангом для данного устройства. Дельта может быть списком объектов для удаления и списком добавляемых объектов. Таким образом, обновление для объекта, например изменение имени, метаданных или изменение атрибута и т.д., может быть удалением объекта, за которым следует считывание объекта. Дельты позволяют системе передавать меньше данных между сервером, на котором поддерживаются наборы, и клиентскими устройствами, на которых используются наборы. Однако этап 630 является необязательным и может не выполняться для всех наборов или даже для любых наборов. Например, клиентское устройство, при обновлении персонализированного репозитория объектов, может удалять все сохраненные в данный момент секции и извлекать нужные секции (например, предсказанные секции, попадающие в пределы параметров использования набора) и сохранять их в качестве персонализированной модели объектов. Каждый фиксированный набор объектов может иметь уникальный идентификатор. В некоторых реализациях, уникальный идентификатор может быть хешем содержимого фиксированного набора. Затем процесс 600 завершается. Процесс 600 может периодически повторяться, чтобы гарантировать, что фиксированные наборы объектов являются текущими.
[0058] Фиг. 7 иллюстрирует блок-схему примерного процесса 700 для создания персонального репозитория объектов с использованием предварительно вычисленных наборов объектов в соответствии с раскрытыми реализациями. Процесс 700 может выполняться посредством системы персонализированного репозитория объектов, такой как система 100 на фиг. 1. Процесс 700 может выполняться на клиентском устройстве для определения того, какой фиксированный набор объектов или секций включен в персонализированный репозиторий объектов, хранящийся на клиентском устройстве. Клиентское устройство может выполнять процесс 700 непрерывно, периодически, после изменения сетевой связности, при запуске события, такого как установка нового приложения, входящий телефонный вызов, добавление нового контакта и т.д., или при пользовательском запросе синхронизации. Процесс 700 может выполняться посредством подсистемы идентификации набора, такого как подсистема 162 идентификации набора.
[0059] Процесс 700 может начинаться с идентификации фиксированных наборов объектов, релевантных для пользователя клиентского устройства (705). Наборы могут быть фиксированными в том смысле, что наборы определены до выполнения этапа 705, а не как часть этапа 705. Другими словами, наборы определяются независимо от любого конкретного пользователя или запроса в репозиторий объектов. Наборы, идентифицированные как часть этапа 705, являются намного меньшим поднабором, чем общее количество фиксированных наборов. Идентификация фиксированных наборов может основываться, например, на контексте, связанном с клиентским устройством. Например, модель предсказания набора может быть обеспечена набором признаков, генерируемых из разнообразия сигналов (то есть контекста), которые могут включать в себя метаданные и информацию, собранную из содержимого, сгенерированного на клиентском устройстве, например, через агента содержимого, историю поиска, пользовательские профили т.д. В некоторых реализациях, информация, используемая в качестве сигнала, может включать в себя информацию от устройств, находящихся в непосредственной близости от клиентского устройства, например, от электронных приборов или других вычислительных устройств в домашнем Интернете вещей, от других персональных вычислительных устройств, связанных с пользователем или домашним хозяйством пользователя, и т.д. Хотя такие сигналы исходят от другого устройства, близость является контекстом, связанным с клиентским устройством. В некоторых реализациях, информация может включать в себя местоположение вычислительного устройства, временную метку, содержимое в истории поиска для пользователя, содержимое в индексе захвата экрана, содержимое, связанное с пользовательским профилем, приложения, установленные на клиентском устройстве, действия, выполняемые пользователем (например, изменение настроек устройства, установка приложения) и т.д. Сигналы могут быть предоставлены в модель предсказания набора, такую как модель 122 предсказания набора или модель 164 предсказания набора, которая, в свою очередь, может обеспечивать один или несколько предсказанных фиксированных наборов объектов. Фиксированные наборы объектов, идентифицированные на этапе 705, также могут быть основаны на местоположении устройства, приложениях, установленных на устройстве, задачах или действиях, обычно выполняемых на устройстве, и т.д.
[0060] Затем система может ранжировать идентифицированные фиксированные наборы объектов по релевантности (710). Релевантность может быть основана на оценке вероятности, предоставленной моделью предсказания набора. В некоторых реализациях, система может корректировать эту вероятность на основе другой информации, такой как местоположение устройства, время суток, другие устройства в непосредственной близости и т.д. Например, если два компаньона по путешествию связали свои устройства, устройство первого компаньона может определить, например, через сигнализацию от устройства к устройству, что устройство второго компаньона имеет конкретную секцию репозитория объектов, и устройство первого компаньона может понизить релевантность этой секции, например, потому что одно из двух устройств уже имеет эту секцию репозитория объектов, хранящуюся в персонализированном репозитории объектов. В качестве другого примера, устройство пользователя может иметь конкретное приложение, которое требует определенную секцию репозитория объектов, и система может повысить релевантность этой конкретной секции. В качестве другого примера, система может повысить релевантность секции, которая задана пользователем, например, через средство 225 управления на фиг. 2. Для фиксированных наборов объектов на основе местоположения, система может установить оценку релевантности для набора на основе расстояния клиентского устройства от ячейки, представленной набором. Например, когда клиентское устройство расположено внутри ячейки, релевантность может быть очень высокой. Релевантность других ячеек может основываться на расстоянии между центром ячейки и текущим местоположением клиентского устройства, так что увеличение расстояния снижает релевантность.
[0061] Система может определять выбранные наборы для персонализированного репозитория объектов на основе параметров использования набора и рангов (715). В некоторых реализациях, система может определять порог релевантности на основе параметров использования набора и рангов фиксированных наборов объектов, идентифицированных в качестве релевантных для пользователя. Любые наборы с оценкой релевантности, которая удовлетворяет порогу, могут быть включены в набор, выбранный для персонализированного репозитория объектов. Фиг. 9 является еще одним примером выбора наборов на основе параметров использования набора и ранга. Затем система может определить, нужно ли обновлять персонализированный репозиторий объектов (720). Например, если выбранные фиксированные наборы объектов совпадают с наборами, которые в текущее время включены в персонализированный репозиторий объектов, но система в последнее время не проверяла наличие обновлений, то система может обновить репозиторий (720, Да). В качестве другого примера, если система была уведомлена об обновлении одного из фиксированных наборов в выбранных наборах, то система может обновить репозиторий (720, Да). Если фиксированный набор объектов находится в выбранных наборах, но не в персонализированном репозитории объектов в текущее время, то система может обновить репозиторий (720, Да). Если системе не нужно обновлять репозиторий (720, Нет), процесс 700 завершается.
[0062] Если система обновляет репозиторий (720, Да), система может выбрать набор с наивысшим рангом из выбранных наборов (725). Для удобства объяснения, этот набор с наивысшим рангом может упоминаться как первый набор. Система может определить, находится ли уже этот первый набор в персонализированном репозитории (730) объектов. Если он находится в репозитории (730, Да), то система может обновить первый набор на клиентском устройстве, если требуется (735) обновление. Система может определить, требуется ли обновление, либо путем извлечения первого набора с сервера, либо путем уведомления от сервера, что обновление существует. Обновление может иметь форму дельты, например, списка удаляемых объектов и списка объектов для добавления в фиксированный набор. Если первый набор не находится в персонализированном репозитории (730, Нет) объектов, система может определить, имеет ли персональный репозиторий объектов место для первого набора (740). Например, персональный репозиторий объектов может иметь ограничение на количество наборов в репозитории или память, используемую репозиторием, или и то, и другое. Если добавление первого набора превысило бы пределы (740, Нет), то система может определить, имеется ли фиксированный набор в текущее время в персонализированном репозитории объектов, который можно удалить (745). Набор, который в текущее время находится в персонализированном репозитории объектов, может быть удален, если он не находится в выбранных фиксированных наборах объектов, т.е. тех, которые идентифицированы на этапе 715. Набор также можно удалить, если он имеет более низкий ранг, чем первый набор. Если имеется набор для удаления (745, Да), то система может удалить набор из персонализированного репозитория (750) объектов и вернуться к этапу 740. Если никакие наборы не могут быть удалены (745, Нет), процесс 700 может завершиться.
[0063] Когда имеется место для первого набора в персонализированном репозитории объектов (740, да), система может добавить первый набор в персонализированный репозиторий объектов на мобильном устройстве (755). Затем система может определить, имеется ли следующий набор с наивысшим рангом в выбранных наборах (760). Если имеется следующий набор с наивысшим рангом (760, Да), то система может выполнять этапы 725-760 для следующего набора. Затем этот следующий набор становится первым набором для удобства объяснения. Таким образом, например, система может определить, находится ли следующий набор, то есть теперь первый набор, уже в персонализированном репозитории (730) объектов, и т.д. Когда все наборы в выбранных наборах были обработаны посредством этапов 730-760 (760, нет), и система обновила персонализированный репозиторий объектов, процесс 700 завершается.
[0064] Фиг. 8 иллюстрирует блок-схему примерного процесса 800 для идентификации фиксированных наборов объектов, релевантных для пользователя клиентского устройства, в соответствии с раскрытыми реализациями. Процесс 800 может выполняться посредством системы персонализированного репозитория объектов, такого как система 100 на фиг. 1. Процесс 800 может выполняться на клиентском устройстве как часть этапа 705 на фиг. 7, чтобы определить, какой фиксированный набор объектов или секций является релевантным для пользователя. Процесс 800 начинается с определения местоположения клиентского устройства (805). Местоположение может быть выражено в виде координат, например координат глобальной системы позиционирования (GPS), или как идентификатор географической ячейки или с помощью некоторых других способов выражения местоположения на Земле. Система может назначать релевантность фиксированного набора объектов на основе местоположения, основываясь на расстоянии от клиентского устройства до ячейки, представленной фиксированным набором на основе местоположения (810). Расстояние может быть измерено от местоположения клиентского устройства до центра ячейки. Релевантность также может иметь обратное отношение к расстоянию, так что более короткое расстояние имеет более высокую релевантность. Когда клиентское устройство расположено в ячейке для определенного фиксированного набора объектов, конкретный фиксированный набор объектов может получать наивысшую оценку релевантности.
[0065] Система также может определять фиксированные наборы на основе темы, которые являются релевантными для пользователя (815). Наборы на основе темы могут быть определены с помощью модели предсказания набора, такой как модель 164 предсказания набора или модель 122 предсказания набора, которая обеспечивает один или несколько идентификаторов для фиксированных наборов объектов, которые предсказаны на основе признаков. Признаки могут быть основаны на ряде информационных элементов, таких как расположение устройства, содержимое в записях поиска, пользовательский профиль или содержимое захвата экрана, данные с устройств, находящихся в непосредственной близости от клиентского устройства, например, обменивающихся данными с клиентским устройством, временная метка, приложения, установленные или исполняющиеся в определенное время, и т.д. Система может устанавливать оценку релевантности каждого фиксированного набора объектов, основывающегося на теме, по сходству с представлением для пользователя клиентского устройства (820). В некоторых реализациях, сходство может быть вероятностью, связанной с фиксированным набором, обеспеченным моделью предсказания набора. Система также может определять функциональные фиксированные наборы объектов (825). Функциональными наборами могут быть объекты, которые считаются наиболее популярными, например, объекты, которые наиболее часто ищут, объекты, к которым наиболее часто обращаются, объекты, наиболее часто встречающиеся в автоматически просканированных документах, и т.д. Функциональные наборы могут также включать в себя объекты, используемые для конкретной задачи, действия или приложения. Например, функциональный набор может включать в себя объекты, которые позволяют устройству выполнять OCR на конкретном языке или которые используются приложением искусствоведения и т.п. Функциональные наборы могут также включать в себя комбинации основанных на местоположении и основанных на теме наборов, например, кинотеатры в Портленде, Орегон, или национальные памятники в Вашингтоне, округ Колумбия. В некоторых реализациях, система может использовать популярность объекта в качестве оценки релевантности для функционального фиксированного набора объектов. В некоторых реализациях, фиксированный набор может быть высоко ранжирован на основе приложения, которое пользователь установил. Затем процесс 800 заканчивается, идентифицировав фиксированные наборы объектов, релевантных для пользователя вычислительного устройства, и присвоив оценку релевантности каждому набору.
[0066] Фиг. 9 иллюстрирует блок-схему примерного процесса 900 для выбора фиксированных наборов объектов из фиксированных наборов объектов, релевантных для пользователя клиентского устройства, на основе параметров использования набора в соответствии с раскрытыми реализациями. Процесс 900 может выполняться посредством системы персонализированного репозитория объектов, такой как система 100 на фиг. 1. Процесс 900 может выполняться на клиентском устройстве как часть этапа 715 согласно фиг. 7, чтобы определить, какой фиксированный набор объектов или секций, которые являются релевантными для пользователя, выбирается для включения в персонализированный репозиторий объектов на основе параметров использования набора и ранга. Процесс 900 начинается с инициализации счетчика наборов и переменных размера модели. Счетчик набора может быть установлен на ноль, и размер репозитория также может быть установлен на ноль. Затем система может выбирать из фиксированных наборов, идентифицированных как релевантные, фиксированный набор с наивысшим рангом (910). Система может определить, включают ли параметры использования набора параметр (915) количества. Параметр количества является максимальным количеством наборов 215 на фиг. 2 и представляет ограничение по количеству фиксированных наборов, которые могут находиться в персонализированном репозитории объектов. Если имеется параметр количества (915, Да), система может увеличить количество счета наборов на единицу (920). Затем система может определить, является ли счет наборов большим, чем параметр количества (925). Если это так, то процесс 900 может закончиться, потому что фиксированный набор выходит за пределы, представленные параметрами использования набора. Однако для набора с наивысшим рангом счет наборов не больше параметра количества (925, Нет), поэтому система переходит на этап 930.
[0067] Система определяет, включают ли параметры использования набора параметр пространства (памяти) (930). Параметр пространства может быть выражен как заданный объем памяти (например, максимальная память 210 на фиг.2) или процент доступной памяти (например, процент памяти 220 на фиг.2) или их комбинация. Если параметры использования набора включают параметр пространства (930, Да), система может добавить размер проверяемого фиксированного набора к размеру (953) репозитория. Размер может быть известен или может быть оценен, например, на основе среднего размера фиксированных наборов объектов. Система может определить, является ли размер репозитория большим, чем параметр пространства (940). Если это так (940, Да), то процесс 900 заканчивается, потому что фиксированный набор нарушил бы ограничение, установленное параметрами использования набора. В противном случае (940, Нет), система добавляет набор к выбранным наборам (945). Выбранные наборы представляют собой фиксированные наборы с наивысшим рангом, идентифицированные как релевантные для пользователя, которые также удовлетворяют ограничениям, установленным параметрами использования набора. Если в идентифицированных наборах имеется другой набор (например, фиксированные наборы, идентифицированные как релевантные для пользователя), 950, да, то система может выбрать следующий набор с наивысшим рангом (955) и продолжить этапы 915-950, описанные выше. Если в идентифицированных наборах не существует других наборов (950, Нет), то процесс 900 заканчивается получением идентифицированных наборов, которые должны быть включены в репозиторий на основе параметров использования набора.
[0068] Фиг. 10 показывает пример типового компьютерного устройства 1000, которое может приводиться в действие как сервер 110 и/или клиентское устройство 150 согласно фиг. 1, которое может быть использовано с описанными здесь методами. Вычислительное устройство 1000 подразумевается представляющим различные примерные формы вычислительных устройств, таких как портативные компьютеры, настольные компьютеры, рабочие станции, персональные цифровые помощники, сотовые телефоны, смартфоны, планшеты, серверы и другие вычислительные устройства, включая носимые устройства. Компоненты, показанные здесь, их связи и отношения и их функции являются только примерами и не предназначены для ограничения реализаций изобретений, описанных и/или заявленных в настоящем документе.
[0069] Вычислительное устройство 1000 включает в себя процессор 1002, память 1004, устройство хранения 1006 и порты 1010 расширения, соединенные через интерфейс 1008. В некоторых реализациях, вычислительное устройство 1000 может включать в себя приемопередатчик 1046, интерфейс 1044 связи и модуль 1048 приемника GPS (Глобальной системы позиционирования), среди других компонентов, соединенных через интерфейс 1008. Устройство 1000 может осуществлять беспроводную связь через интерфейс 1044 связи, который может включать в себя схемы обработки цифровых сигналов, если необходимо. Каждый из компонентов 1002, 1004, 1006, 1008, 1010, 1040, 1044, 1046 и 1048 может быть установлен на общей материнской плате или, по мере необходимости, другими способами.
[0070] Процессор 1002 может обрабатывать инструкции для исполнения в вычислительном устройстве 1000, включая инструкции, хранящиеся в памяти 1004 или устройстве хранения 1006, для отображения графической информации для GUI на внешнем устройстве ввода/вывода, таком как дисплей 1016. Дисплей 1016 может быть монитором или плоским сенсорным дисплеем. В некоторых реализациях могут использоваться, по мере необходимости, несколько процессоров и/или несколько шин вместе с множеством устройств памяти и типов памяти. Кроме того, может быть соединено несколько вычислительных устройств 1000, причем каждое устройство обеспечивает части необходимых операций (например, как банк серверов, группа блейд-серверов или мультипроцессорная система).
[0071] Память 1004 хранит информацию в вычислительном устройстве 1000. В одной реализации, память 1004 является блоком или блоками энергозависимой памяти. В другой реализации, память 1004 является блоком или блоками энергонезависимой памяти. Память 1004 также может быть другой формой машиночитаемого носителя, такого как магнитный или оптический диск. В некоторых реализациях, память 1004 может включать в себя расширение памяти, предоставляемое через интерфейс расширения.
[0072] Устройство хранения 1006 способно обеспечивать массовую память для вычислительного устройства 1000. В одной реализации, устройство хранения 1006 может представлять собой или включать в себя машиночитаемый носитель, такой как устройство гибкого диска, устройство жесткого диска, устройство оптического диска или устройство на магнитной ленте, флэш-память или другое подобное твердотельное устройство памяти или массив устройств, включая устройства в сети хранения данных или другие конфигурации. Компьютерный программный продукт может быть осязаемым образом воплощен в таком машиночитаемом носителе. Компьютерный программный продукт может также включать в себя инструкции, которые, при исполнении, выполняют один или несколько способов, как описано выше. Считываемый компьютером или машиночитаемый носитель представляет собой устройство хранения, такое как память 1004, устройство хранения 1006 или память на процессоре 1002.
[0073] Интерфейс 1008 может быть высокоскоростным контроллером, который управляет интенсивными по пропускной способности операциями для вычислительного устройства 1000, или низкоскоростным контроллером, который управляет менее интенсивными по пропускной способности операциями, или комбинацией таких контроллеров. Внешний интерфейс 1040 может быть предусмотрен таким образом, чтобы обеспечивать связь в ближней зоне устройства 1000 с другими устройствами. В некоторых реализациях, контроллер 1008 может быть связан с устройством хранения 1006 и портом 1014 расширения. Порт расширения, который может включать в себя различные коммуникационные порты (например, USB, Bluetooth, Ethernet, беспроводной Ethernet), может быть связан с одним или несколькими устройствами ввода/вывода, такими как клавиатура, координатно-указательное устройство, сканер или сетевое устройство, такое как коммутатор или маршрутизатор, например, через сетевой адаптер.
[0074] Вычислительное устройство 1000 может быть реализовано в ряде различных форм, как показано на чертеже. Например, оно может быть реализовано как стандартный сервер 1030 или многократно в группе таких серверов. Оно также может быть реализовано как часть системы стоечного (rack-) сервера. Кроме того, оно может быть реализовано в вычислительном устройстве, таком как портативный компьютер 1032, персональный компьютер 1034 или планшет/смартфон 1036. Вся система может состоять из множества вычислительных устройств 1000, осуществляющих связь друг с другом. Возможны другие конфигурации.
[0075] Фиг. 11 показывает пример типового компьютерного устройства 1100, которое может быть сервером 110 согласно фиг. 1, который может использоваться с описанными здесь методами. Вычислительное устройство 1100 подразумевается представляющим различные примерные формы крупномасштабных устройств обработки данных, таких как серверы, блейд-серверы, центры обработки данных, мейнфреймы и другие крупномасштабные вычислительные устройства. Вычислительное устройство 1100 может быть распределенной системой, имеющей множество процессоров, возможно, включая сетевые узлы хранения, которые связаны между собой одной или несколькими сетями связи. Компоненты, показанные здесь, их соединения и отношения и их функции, являются только примерами и не предназначены для ограничения реализаций изобретений, описанных и/или заявленных в настоящем документе.
[0076] Распределенная вычислительная система 1100 может включать в себя любое количество вычислительных устройств 1180. Вычислительные устройства 1180 могут включать в себя серверы или rack-серверы, мейнфреймы и т.д., осуществляющие связь по локальной или глобальной сети, выделенные оптические линии связи, модемы, мосты, маршрутизаторы, коммутаторы, проводные или беспроводные сети и т.д.
[0077] В некоторых реализациях, каждое вычислительное устройство может включать в себя несколько стоек. Например, вычислительное устройство 1180a включает в себя несколько стоек 1158a-1158n. Каждая стойка может включать в себя один или несколько процессоров, таких как процессоры 1152a-1152n и 1162a-1162n. Процессоры могут включать в себя процессоры данных, сетевые устройства хранения данных и другие устройства, управляемые компьютером. В некоторых реализациях, один процессор может работать как главный процессор и управлять задачами планирования и распределения данных. Процессоры могут быть связаны между собой через один или несколько стоечных коммутаторов 1158, и одна или несколько стоек могут быть соединены посредством коммутатора 1178. Коммутатор 1178 может управлять коммуникациями между несколькими соединенными вычислительными устройствами 1100.
[0078] Каждая стойка может включать в себя память, такую как память 1154 и память 1164, и хранилище, такое как 1156 и 1166. Хранилище 1156 и 1166 может обеспечивать массовую память и может включать в себя энергозависимое или энергонезависимое хранилище, такое как сетевые диски, гибкие диски, жесткие диски, оптические диски, магнитные ленты, флэш-память или другие подобные твердотельные устройства памяти или массив устройств, включая устройства в сети хранения данных или другие конфигурации. Хранилище 1156 или 1166 может совместно использоваться несколькими процессорами, несколькими стойками или несколькими вычислительными устройствами и может включать в себя машиночитаемый носитель, хранящий инструкции, исполняемые одним или несколькими процессорами. Память 1154 и 1164 может включать в себя, например, блок или блоки энергозависимой памяти, блок или блоки энергонезависимой памяти и/или другие формы машиночитаемых носителей, таких как магнитные или оптические диски, флэш-память, кэш, память с произвольным доступом (RAM), постоянная память (ROM) и их комбинации. Память, такая как память 1154, также может совместно использоваться между процессорами 1152a-l152n. Структуры данных, такие как индекс, могут храниться, например, в хранилище 1156 и в памяти 1154. Вычислительное устройство 1100 может включать в себя другие, не показанные, компоненты, такие как контроллеры, шины, устройства ввода/вывода, модули связи и т.д.
[0079] Вся система, такая как сервер 110, может состоять из нескольких вычислительных устройств 1100, осуществляющих связь друг с другом. Например, устройство 1180a может осуществлять связь с устройствами 1180b, 1180c и 1180d, и они могут в совокупности быть известны как сервер 110. В качестве другого примера, система 100 согласно фиг. 1 может включать в себя одно или несколько вычислительных устройств 1100. Некоторые вычислительные устройства могут быть расположены географически близко друг к другу, а другие могут быть расположены географически удаленно. Топология системы 1100 является только примером, и система может использовать другие топологии или конфигурации.
[0080] Согласно некоторым аспектам раскрытия, мобильное устройство содержит устройство отображения, персонализированный репозиторий объектов, хранящийся в памяти, причем персонализированный репозиторий объектов включает в себя множество фиксированных наборов объектов из репозитория объектов, хранящегося на сервере, причем каждый фиксированный набор имеет соответствующий идентификатор и включает в себя информацию об объектах в наборе, по меньшей мере один процессор и память, хранящую инструкции, которые, при исполнении по меньшей мере одним процессором, предписывают мобильному устройству выполнять операции. Операция включает в себя идентификацию фиксированных наборов из репозитория объектов, которые являются релевантными для пользователя мобильного устройства, на основе контекста, связанного с мобильным устройством, ранжирование фиксированных наборов по релевантности, определение выбранных наборов из идентифицированных фиксированных наборов с использованием ранга и параметров использования набора, применимых к пользователю, и обновление персонализированного репозитория объектов с использованием выбранных наборов.
[0081] Этот и другие аспекты могут включать в себя один или несколько из следующих признаков. Например, обновление персонализированного репозитория объектов может происходить в ответ на определение того, что первый фиксированный набор из идентифицированных фиксированных наборов не существует в персонализированном репозитории объектов. В качестве другого примера, обновление персонализированного репозитория объектов может включать в себя удаление набора в персонализированном репозитории объектов, который не является выбранным набором. В качестве другого примера, параметры использования набора могут включать в себя количество фиксированных наборов и/или объем памяти, выделенной для персонализированного репозитория объектов, причем объем устанавливается пользователем. В качестве другого примера, множество фиксированных наборов, хранящихся в персонализированном репозитории объектов, может включать в себя наборы местоположений, причем объекты в наборе местоположений расположены в одной и той же ячейке. В качестве другого примера, множество фиксированных наборов, хранящихся в персонализированном репозитории объектов, включает в себя тематические наборы, причем объекты в тематическом наборе представляют собой объекты, кластеризованные вместе на основе характеристик объектов. В некоторых реализациях, рангом первого тематического набора является ранг, назначенный моделью предсказания на основе элементов, распознанных в содержимом, сгенерированном для отображения на устройстве отображения. В качестве другого примера, обновление персонализированного репозитория объектов может включать в себя добавление фиксированного набора, который в текущее время не существует в персонализированном репозитории объектов, и использование дельты фиксированного набора, который существует в персонализированном репозитории объектов.
[0082] В качестве другого примера, операции могут также включать в себя идентификацию объекта в содержимом, сгенерированном для отображения на устройстве отображения, с использованием персонализированного репозитория объектов. В качестве другого примера, каждый из множества наборов имеет идентификатор версии, причем идентификатор версии изменяется, когда обновление конкретного набора нарушает схему персонализированного репозитория объектов. В качестве другого примера, операции могут также включать в себя инициирование отображения информации, которая идентифицирует первый фиксированный набор из выбранных наборов, и средство управления, выполненное с возможностью позволять пользователю принимать установку первого фиксированного набора и загружать первый фиксированный набор и добавлять его к персонализированному репозиторию объектов, когда пользователь принимает установку. В качестве другого примера, идентификация фиксированных наборов репозитория объектов, которые являются релевантными для пользователя, на основе контекста может включать в себя определение местоположения мобильного устройства и использование местоположения, чтобы определять фиксированные наборы на основе местоположения, релевантные для пользователя, использование модели предсказания набора, чтобы идентифицировать наборы на основе темы, релевантные для пользователя, и определение наборов, идентифицированных по меньшей мере одним приложением, установленным на мобильном устройстве. В качестве другого примера, идентификация фиксированных наборов репозитория объектов, которые являются релевантными для пользователя, на основе контекста может включать в себя определение содержимого, ранее просмотренного на мобильном устройстве, и предоставление ранее просмотренного содержимого в модель предсказания набора, выполненную с возможностью предсказывать по меньшей мере один набор на основе темы из ранее просмотренного содержимого, и/или определение последних поисков, проведенных на мобильном устройстве, и предоставление содержимого из последних поисков в модель предсказания набора, выполненную с возможностью предсказывать по меньшей мере один набор на основе темы из содержимого. В качестве другого примера, идентификация фиксированных наборов репозитория объектов, которые являются релевантными для пользователя, на основе контекста, может включать в себя определение действия, выполняемого пользователем мобильного устройства, и предсказание фиксированного набора объектов на основе действия.
[0083] В соответствии с некоторыми аспектами раскрытия, способ включает в себя прием захваченного изображения экрана, выполненного с возможностью отображать содержимое на дисплее мобильного устройства, определение текста в изображении путем выполнения распознавания текста на изображении, предоставление текста в модель предсказания набора, причем модель предсказания набора обучается, чтобы предсказывать одно или несколько фиксированных наборов объектов, и сохранение по меньшей мере одного фиксированного набора объектов из предсказанных фиксированных наборов объектов в персонализированном репозитории объектов в памяти на мобильном устройстве.
[0084] Эти и другие аспекты могут включать в себя один или несколько из следующих признаков. Например, способ может также включать в себя идентификацию объектов в изображениях захвата экрана с использованием персонализированного репозитория объектов. Способ может также включать в себя определение местоположения, связанного с содержимым, распознанным в изображении захвата экрана, предоставление местоположения в модель предсказания набора, причем модель предсказания набора предсказывает по меньшей мере один основанный на местоположении фиксированный набор объектов на основе местоположения, и сохранение фиксированного набора объектов на основе местоположения в персонализированном репозитории объектов. В качестве другого примера, модель предсказания набора может предсказывать множество предсказанных фиксированных наборов объектов, и способ также включает в себя ранжирование каждого из предсказанных фиксированных наборов объектов, использование параметров использования набора и ранжирований, чтобы определять выбранные фиксированные наборы объектов из предсказанных фиксированных наборов объектов и сохранение выбранных фиксированных наборов объектов в персонализированном репозитории объектов.
[0085] В соответствии с некоторыми аспектами раскрытия, способ может включать в себя генерирование множества фиксированных наборов объектов из репозитория объектов. Фиксированные наборы включают в себя наборы на основе местоположения, причем каждый набор на основе местоположения включает в себя объекты из репозитория объектов, которые имеют местоположение внутри ячейки, причем ячейка связана с набором, и наборы на основе темы, причем по меньшей мере некоторые из наборов на основе темы включают в себя объекты из репозитория объектов, которые связаны друг с другом через сходство представлений. Способ может также включать в себя предоставление поднабора фиксированных наборов объектов на клиентское устройство, причем клиентское устройство запрашивает поднабор на основе местоположения клиентского устройства и на основе распознанных элементов, идентифицированных в содержимом, сгенерированном для отображения на клиентском устройстве.
[0086] Эти и другие аспекты могут включать в себя один или несколько из следующих признаков. Например, способ может также включать в себя идентификацию по меньшей мере одного объекта, добавленного в репозиторий объектов, определение по меньшей мере одного фиксированного набора, которому принадлежит добавленный объект, и генерирование дельты для по меньшей мере одного фиксированного набора, который включает в себя добавленный объект. В качестве другого примера, способ может также включать в себя идентификацию по меньшей мере одного объекта, добавленного в репозиторий объектов, определение по меньшей мере одного фиксированного набора, к которому принадлежит добавленный объект, определение того, что схема фиксированных наборов изменилась, и генерирование новой версии по меньшей мере одного фиксированного набора, причем новая версия включает в себя добавленный объект и имеет идентификатор новой версии. В качестве другого примера, по меньшей мере некоторые из наборов на основе темы могут включать в себя объекты, подобные начальному объекту, и/или фиксированные наборы также могут включать в себя функциональные наборы, причем по меньшей мере один из функциональных наборов включает в себя объекты, которые считаются наиболее популярными.
[0087] Различные реализации могут включать в себя реализацию в одной или нескольких компьютерных программах, которые могут исполняться и/или интерпретироваться на программируемой системе, включающей в себя по меньшей мере один программируемый процессор, который может быть процессором специального или общего назначения, подсоединенным для приема данных и инструкций от и для передачи данных и инструкций на систему хранения, по меньшей мере одно устройство ввода и по меньшей мере одно устройство вывода.
[0088] Эти компьютерные программы (также известные как программы, программное обеспечение, программные приложения или код) включают в себя машинные инструкции для программируемого процессора и могут быть реализованы на высокоуровневом процедурном и/или объектно-ориентированном языке программирования и/или на языке ассемблера/машинном языке. Как используется здесь, термины ʺмашиночитаемый носительʺ, ʺсчитываемый компьютером носительʺ относятся к любому долговременному (не переходному) компьютерному программному продукту, устройству и/или прибору (например, магнитным дискам, оптическим дискам, памяти (включая память с доступом для чтения), программируемым логическим устройствам (PLD)), используемым для предоставления машинных инструкций и/или данных на программируемый процессор.
[0089] Системы и способы, описанные здесь, могут быть реализованы в вычислительной системе, которая включает в себя внутренний (серверный) компонент (например, в качестве сервера данных), или которая включает в себя компонент промежуточного программного обеспечения (например, сервер приложений), или которая включает в себя внешний (клиентский) компонент (например, клиентский компьютер, имеющий графический пользовательский интерфейс или веб-браузер, через который пользователь может взаимодействовать с реализацией описанных систем и методов) или любую комбинацию таких серверного компонента, промежуточного программного обеспечения или клиентского компонента. Компоненты системы могут быть связаны между собой любой формой или средой цифровой передачи данных (например, сетью связи). Примеры сетей связи включают в себя локальную сеть (ʺLANʺ), глобальную сеть (ʺWANʺ) и Интернет.
[0090] Компьютерная система может включать в себя клиенты и серверы. Клиент и сервер, как правило, удалены друг от друга и обычно взаимодействуют через сеть связи. Отношение клиента и сервера возникает в связи с компьютерными программами, исполняющимися на соответствующих компьютерах и имеющими отношение клиент-сервер друг к другу.
[0091] Был описан ряд реализаций. Тем не менее, могут выполняться различные модификации без отклонения от объема изобретения, который определяется следующей формулой изобретения. Кроме того, логические потоки, изображенные на чертежах, не требуют определенного показанного порядка или последовательного порядка для достижения желаемых результатов. Кроме того, могут предусматриваться другие этапы, или этапы могут исключаться из описанных потоков, и другие компоненты могут добавляться или удаляться из описанных систем. Соответственно, другие реализации находятся в пределах объема следующей формулы изобретения.