способ, устройство и компьютерный программный продукт для преобразования и использования данных на основе полиномов
Классы МПК: | G06F17/30 информационный поиск; структуры баз данных для этой цели G06N7/00 Компьютерные системы, основанные на специфических математических моделях |
Автор(ы): | БОЛДЫРЕВ Сергей (FI), ОЛИВЕР Айан (FI), ХОНКОЛА Юкка (FI), ЛАППЕТЕЛЯЙНЕН Антти (FI) |
Патентообладатель(и): | Нокиа Корпорейшн (FI) |
Приоритеты: |
подача заявки:
2009-09-14 публикация патента:
27.09.2013 |
Устройство для преобразования данных на основе полиномов может содержать процессор. Этот процессор может быть сконфигурирован для идентификации данных, которые релевантны для набора из одного или более запросов, и для генерирования вектора источника информации, который указывает на источники информации, ассоциированные с данными. Процессор также может быть сконфигурирован для генерирования кругового полинома на основе вектора источника информации и для факторизации кругового полинома для генерирования множества ортогональных сигнатур данных. Также предложены соответствующие способы и компьютерные программные продукты. 4 н. и 21 з.п. ф-лы, 4 ил.
Формула изобретения
1. Устройство для преобразования и использования данных, содержащее процессор, который конфигурирован для:
инициирования идентификации данных, релевантных для набора из одного или более запросов;
инициирования генерирования вектора источника информации, который указывает на источники информации, ассоциированные с данными, которые релевантны для набора запросов;
инициирования генерирования полинома, по меньшей мере частично на основе вектора источника информации, и
инициирования факторизации полинома для генерирования множества ортогональных сигнатур данных.
2. Устройство по п.1, в котором процессор также сконфигурирован для управления распределением ортогональных сигнатур данных в хранилища информации в пределах сети динамически распределенных устройств.
3. Устройство по п.1 или 2, в котором процессор также сконфигурирован для:
приема нового запроса;
обнаружения местоположения двух или более ортогональных сигнатур данных;
инициирования реконструкции полинома, по меньшей мере частично на основе обнаруженных ортогональных сигнатур данных; и
инициирования генерирования дедуктивного замыкания данных, по меньшей мере частично на основе полинома.
4. Устройство по п.1 или 2, в котором процессор, конфигурированный для инициирования генерирования вектора источника информации, также конфигурирован для инициирования проверки вектора источника информации путем генерирования класса эквивалентности.
5. Устройство по п.1 или 2, в котором процессор также конфигурирован для инициирования обновления ортогональных сигнатур данных путем факторизации нового полинома, генерированного по меньшей мере частично на основе обновленных данных.
6. Устройство по п.1 или 2, в котором процессор, конфигурированный для инициирования факторизации полинома для генерирования множества ортогональных сигнатур данных, конфигурирован для инициирования факторизации полинома для генерирования множества ортогональных сигнатур данных, которые являются неприводимыми полиномами.
7. Устройство по п.1 или 2, в котором процессор, конфигурированный для инициирования генерирования и факторизации полинома, конфигурирован для инициирования генерирования и факторизации полинома, который является круговым полиномом.
8. Устройство по п.1 или 2, также содержащее запоминающее устройство, которое хранит читаемые компьютером инструкции программного кода, доступные процессору, для конфигурирования процессора.
9. Устройство по п.1 или 2, которое содержит мобильный терминал.
10. Способ преобразования и использования данных, содержащий:
инициирование идентификации данных, релевантных для набора из одного или более запросов;
инициирование генерирования вектора источника информации, который указывает на источники информации, ассоциированные с данными, которые релевантны для набора запросов;
инициирование генерирования полинома, по меньшей мере частично на основе вектора источника информации, и
инициирование факторизации полинома для генерирования множества ортогональных сигнатур данных.
11. Способ по п.10, также содержащий управление распределением ортогональных сигнатур данных в хранилища информации в пределах сети динамически распределенных устройств.
12. Способ по п.10 или 11, также содержащий:
прием нового запроса;
обнаружение местоположения двух или более ортогональных сигнатур данных;
инициирование реконструкции полинома, по меньшей мере частично на основе обнаруженных ортогональных сигнатур данных; и
инициирование генерирования дедуктивного замыкания данных, по меньшей мере частично на основе полинома.
13. Способ по п.10 или 11, также содержащий инициирование обновления ортогональных сигнатур данных путем факторизации нового полинома, генерированного по меньшей мере частично на основе обновленных данных.
14. Способ по п.10 или 11, в котором ортогональные сигнатуры данных содержат неприводимые полиномы.
15. Способ по п.10 или 11, в котором полином содержит круговой полином.
16. Машиночитаемый носитель для преобразования и использования данных, содержащий инструкции, исполняемые устройством для выполнения операций, которые включают:
идентификацию данных, релевантных для набора из одного или более запросов;
генерирование вектора источника информации, который указывает на источники информации, ассоциированные с данными, которые релевантны для набора запросов;
генерирование полинома, по меньшей мере частично на основе вектора источника информации, и
факторизацию полинома для генерирования множества ортогональных сигнатур данных.
17. Машиночитаемый носитель информации по п.16, также обеспечивающий управление распределением ортогональных сигнатур данных в хранилища информации в пределах сети динамически распределенных устройств.
18. Машиночитаемый носитель информации по п.16 или 17, также обеспечивающий:
прием нового запроса;
обнаружение местоположения двух или более ортогональных сигнатур данных;
реконструкцию полинома, по меньшей мере частично на основе обнаруженных ортогональных сигнатур данных; и
генерирование дедуктивного замыкания данных, по меньшей мере частично на основе полинома.
19. Машиночитаемый носитель информации по п.16 или 17, также обеспечивающий проверку вектора источника информации путем генерирования класса эквивалентности.
20. Машиночитаемый носитель информации по п.16 или 17, также обеспечивающий обновление ортогональных сигнатур данных путем факторизации нового полинома, генерированного по меньшей мере частично на основе обновленных данных.
21. Машиночитаемый носитель информации по п.16 или 17, в котором полином содержит круговой полином.
22. Устройство для преобразования и использования данных, содержащее:
средство для инициирования идентификации данных, релевантных для набора из одного или более запросов;
средство для инициирования генерирования вектора источника информации, который указывает на источники информации, ассоциированные с данными, которые релевантны для набора запросов;
средство для инициирования генерирования полинома, по меньшей мере частично на основе вектора источника информации, и
средство для инициирования факторизации полинома для генерирования множества ортогональных сигнатур данных.
23. Устройство по п.22, также содержащее средство для управления распределением ортогональных сигнатур данных в хранилища информации в пределах сети динамически распределенных устройств.
24. Устройство по п.22 или 23, также содержащее:
средство для приема нового запроса;
средство для обнаружения местоположения двух или более ортогональных сигнатур данных;
средство для инициирования реконструкции полинома, по меньшей мере частично на основе обнаруженных ортогональных сигнатур данных; и
средство для инициирования генерирования дедуктивного замыкания данных, по меньшей мере частично на основе полинома.
25. Устройство по п.22 или 23, в котором средство для инициирования генерирования вектора источника информации также конфигурировано для инициирования проверки вектора источника информации путем генерирования класса эквивалентности.
Описание изобретения к патенту
ОБЛАСТЬ ТЕХНИКИ
Варианты осуществления настоящего изобретения относятся в общем к преобразованию информации для ее сохранения и извлечения и более конкретно к способу, устройству и компьютерному программному продукту для преобразования и использования данных на основе полиномов.
УРОВЕНЬ ТЕХНИКИ
Современная эра коммуникаций привела к значительному расширению беспроводных сетей. Были разработаны и разрабатываются различные типы сетевых технологий, результатом чего стало беспрецедентное расширение компьютерных сетей, телевизионных сетей, телефонных сетей и других коммуникационных сетей. По мере появления новых сетевых технологий требования потребителей продолжают являться побуждающим фактором к инновациям в области использования сетей. Беспроводные и мобильные сетевые технологии продолжают удовлетворять соответствующие требования потребителей, обеспечивая при этом большую гибкость и оперативность передачи информации.
При соответствующем увеличении использования коммуникационных и других вычислительных устройств управление информацией внутри и между устройствами становится все более важным. В связи с этим информация может храниться в различных местах и в различных формах. Например, информация может храниться так, что она доступна через сеть, например на сервере данных. Альтернативно, информация может храниться в памяти, которая является локальной для устройства, например, на жестком диске или во флеш-памяти. Кроме того, данные могут храниться в разных формах, например в зашифрованном виде, в целях безопасности.
Независимо от местоположения или формы, в которой хранятся данные, может существовать риск потери данных. Потеря данных может быть результатом ошибки пользователя, сбоя оборудования в силу, например, повреждения устройства памяти, или из-за потери соединения с устройством, обрабатывающим данные. В некоторых случаях, таких как смарт-пространство или среда динамически распределенных устройств, когда устройства и ассоциированные с ними данные могут присоединяться и отключаться в любое время, потеря данных может быть более проблемным фактором из-за возможности частых и непредсказуемых отключений.
Соответственно, механизмы для предотвращения потери данных имеют известное значение, поскольку во многих случаях потеря данных может привести к потере времени и результатов работы. В итоге потребители данных часто полагаются на избыточность хранения данных, например посредством резервного хранилища или других механизмов резервирования. К сожалению, механизмы резервирования часто требуют двойной емкости хранилища и значительных коммуникационных ресурсов для перемещения данных на место резервного хранения.
КРАТКОЕ ИЗЛОЖЕНИЕ СУЩНОСТИ ИЗОБРЕТЕНИЯ
Здесь описаны способ, устройство и компьютерный программный продукт, которые обеспечивают генерирование сигнатур данных, которые в некоторых вариантах осуществления используются для содействия предотвращению потери данных. При этом примеры осуществления настоящего изобретения преобразуют или синтезируют частичные замыкания данных, например с помощью круговых полиномиальных расширений, в неприводимые полиномиальные выражения или сигнатуры данных. Частичные замыкания данных могут быть локальными для устройства, например для устройства в сети динамически распределенных устройств, и могут быть созданы на основе полученного набора одного или более запросов. В некоторых вариантах осуществления сигнатуры данных представляют собой пакеты данных меньшего размера по сравнению с частичными замыканиями данных и могут быть использованы для воспроизведения полного или дедуктивного частичного замыкания данных, посредством процесса комбинации и преобразования. В соответствии с различными вариантами осуществления сигнатуры данных могут быть распределены, например, в смарт-пространстве с помощью техники распределения, такой как однородная или асимметричная/неоднородная техника распределения. В связи с изменениями в сети динамически распределенных устройств и/или ассоциированными изменениями данных в сети сигнатуры данных могут быть регулярно или нерегулярно ресинтезированы или обновлены, чтобы сигнатуры данных точно представляли данные, на которых основаны эти сигнатуры данных. Сигнатуры данных могут быть затем сохранены для облегчения использования этих сигнатур данных в последующих запросах.
В частности, согласно различным примерам осуществления данные могут быть идентифицированы как релевантные для набора из одного или более запросов. Расположение соответствующих данных и/или идентификация источников информации (например, хранилищ информации), хранящих соответствующие данные, например, в сети или в устройстве памяти, также могут быть определены. На основе определения источников информации, которые содержат соответствующую информацию или данные, может быть генерирован вектор источника информации. Вектор источника информации может в итоге указывать, где могут быть найдены соответствующие набору запросов данные. Вектор источника информации может быть также верифицирован путем определения того, может ли быть генерировано представление класса эквивалентности информационного вектора. Вектор источника информации может затем использоваться для генерирования кругового полинома. Затем круговой полином может быть факторизован (разложен на множители) для генерирования множества ортогональных сигнатур данных. При генерировании сигнатур данных таким способом две или более сигнатур данных множества сигнатур данных могут быть объединены для реконструирования кругового полинома и, соответственно, исходных данных, используемых для генерирования кругового полинома. В некоторых примерах осуществления распределение сигнатур данных по хранилищам информации среды динамически распределенных устройств может быть полезным, поскольку потеря данных может быть уменьшена комбинационными свойствами, ассоциированными с сигнатурами данных.
Эффектом некоторых примеров осуществления данного изобретения также является снижение нагрузки на инфраструктуру коммуникаций сети динамически распределенных устройств при использовании сигнатур данных сравнительно меньшего размера, по сравнению с частичными замыканиями данных. Примеры осуществления также реализуют эффективность использования энергии из-за снижения нагрузки на инфраструктуру коммуникаций и хранения данных. Примеры осуществления также являются независимыми от платформы устройства и позволяют разным платформам устройств взаимодействовать в рамках данного решения. Кроме того, примеры осуществления настоящего изобретения также ограничивают потери данных благодаря способности воссоздавать набор данных с меньшим размером элементов информации.
Примером осуществления настоящего изобретения является устройство для преобразования и использования данных на основе полиномов. Устройство может содержать процессор, и этот процессор может быть сконфигурирован для идентификации данных, релевантных для набора из одного или более запросов, и генерирования вектора источника информации, который указывает на источники информации, ассоциированные с данными. Процессор также может быть сконфигурирован для генерирования кругового полинома, на основе вектора источника информации, и факторизации кругового полинома для генерирования множества ортогональных сигнатур данных.
В другом примере осуществления настоящего изобретения предлагается компьютерный программный продукт для преобразования и использования данных на основе полиномов. Компьютерный программный продукт содержит по крайней мере один читаемый компьютером носитель, имеющий машиночитаемые исполняемые инструкции программного кода, хранящиеся на этом носителе. Инструкции программного кода могут быть сконфигурированы для идентификации данных, релевантных для набора из одного или более запросов, и генерирования вектора источника информации, который указывает источники информации, ассоциированные с данными. Инструкции программного кода могут быть также сконфигурированы для генерирования кругового полинома, на основе вектора источника информации, и факторизации кругового полинома для генерирования множества ортогональных сигнатур данных.
Еще одним примером осуществления настоящего изобретения является способ преобразования и использования данных на основе полиномов. Пример способа содержит идентификацию данных, релевантных для набора из одного или более запросов, и генерирование вектора источника информации, который указывает на источники информации, ассоциированные с данными. Пример способа также содержит генерирование кругового полинома, на основе вектора источника информации, и факторизацию кругового полинома для генерирования множества ортогональных сигнатур данных.
Дополнительным примером осуществления настоящего изобретения является устройство для преобразования и использования данных на основе полиномов. Данное устройство содержит средство для идентификации данных, релевантных для набора из одного или более запросов, и средство для генерирования вектора источника информации, который указывает на источники информации, ассоциированные с данными. Пример устройства также содержит средство для генерирования кругового полинома, на основе вектора источника информации, и средство для факторизации кругового полинома для генерирования множества ортогональных сигнатур данных.
КРАТКОЕ ОПИСАНИЕ ЧЕРТЕЖЕЙ
Таким образом, после описания данного изобретения в общих чертах приведены ссылки на прилагаемые чертежи, которые не обязательно показаны в истинном масштабе:
фиг.1а - иллюстрация блок-схемы способа преобразования и использования данных на основе полиномов в соответствии с различными примерами осуществления настоящего изобретения;
фиг.1b - иллюстрация блок-схемы другого способа преобразования и использования данных на основе полиномов в соответствии с различными примерами осуществления настоящего изобретения;
фиг.2 - блок-схема устройства для преобразования и использования данных на основе полиномов в соответствии с различными примерами осуществления настоящего изобретения; и
фиг.3 - иллюстрация блок-схемы еще одного способа преобразования и использования данных на основе полиномов в соответствии с различными примерами осуществления настоящего изобретения.
ПОДРОБНОЕ ОПИСАНИЕ
Варианты осуществления настоящего изобретения будут более подробно описаны далее со ссылкой на прилагаемые чертежи, на которых показаны некоторые (но не все) варианты осуществления изобретения. Конечно, изобретение может быть реализовано во многих различных формах и не должно рассматриваться как ограниченное теми вариантами осуществления, которые изложены здесь; эти варианты осуществления приведены здесь для того, чтобы описание изобретения удовлетворяло существующим требованиям. Одинаковые ссылочные знаки обозначают одинаковые элементы на всех чертежах.
Применяемые здесь термины "данные", "контент", "информация" и аналогичные термины могут быть использованы как взаимозаменяемые для обозначения данных, которые могут быть переданы, приняты, обработаны и/или сохранены, в соответствии с вариантами осуществления настоящего изобретения. Применяемые здесь термины "запрос", "сообщение" и аналогичные термины могут быть использованы как взаимозаменяемые для обозначения взаимодействия в пределах смарт-пространства в соответствии с вариантами осуществления настоящего изобретения. Применяемый здесь термин "локальный", по отношению к устройству, относится к аспекту, находящемуся в устройстве или в пределах одного устройства, а термин "удаленный", по отношению к устройству, относится к аспекту, который находится вне устройства и, возможно, в отдельном устройстве, которое может быть доступно посредством сети. Кроме того, применяемый здесь термин "сообщение" и аналогичные термины могут быть использованы как взаимозаменяемые для обозначения связи в пределах смарт-пространства в соответствии с вариантами осуществления настоящего изобретения. Термин «пример», используемый здесь, не обозначает любую качественную оценку, а применяется с тем, чтобы просто передать иллюстративность примера.
Примеры осуществления настоящего изобретения могут быть использованы в различных условиях, которые связаны с хранением данных. Некоторые примеры осуществления могут быть использованы в контексте сетей с динамически распределенными устройствами, таких как смарт-пространство. Хотя некоторые примеры осуществления, приводимые ниже, описаны при использовании в среде с динамически распределенными устройствами, предполагается, что варианты осуществления также применимы к централизованным и/или статическим сетевым средам, внутренней среде устройства (например, в устройстве памяти электронного устройства и т.д.) и т.п.
Для среды динамически распределенных устройств, таких как смарт-пространства, архитектура может быть определена как динамическая сеть распределенных устройств в режиме ad hoc, имеющая такую динамическую топологию, что любое устройство может выйти или войти в сеть в любое время. В некоторых примерах осуществления смарт-пространство может содержать узлы и хранилища информации.
Узлы могут быть участниками в рамках смарт-пространства, такими как приложения или другие элементы, которые запрашивают или иным образом взаимодействуют с данными, например посредством использования запросов. В этом случае узел может быть любым приложением или частью приложения, исполняемого с помощью устройства, подключенного к смарт-пространству. Узел может быть осведомлен о других узлах смарт-пространства, например о соседних узлах. Приложением узла может быть любое приложение, которое может осуществлять хранение, извлечение, вычисление, передачу и прием информации. В различных вариантах осуществления узел может быть представлен приложениями, исполняющимися различными устройствами (такими как в некоторых примерах осуществления), узел может исполняться на одном устройстве, либо одно устройство может поддерживать исполнение множества узлов. Кроме того, в некоторых вариантах осуществления один узел может быть реализован более чем одним устройством, при этом данные устройства разделяют узел между собой.
Узел может содержать внешний интерфейс, интерфейс хранилища информации узла и задачу. Внешний интерфейс можно рассматривать как взаимодействие узла с внешним миром (например, с пользователем). Интерфейс хранилища информации узла может быть использован для передачи информации и получения информации из хранилища информации посредством смарт-пространства. Задача может определять отношение между внешним интерфейсом и интерфейсом хранилища информации узла. Например, если пользователь желает извлечь некоторую информацию из хранилища информации в узел, то может быть генерирована задача для извлечения (например, сообщение запроса). Узел может взаимодействовать с хранилищем информации различными способами. При этом узел может ввести информацию, удалить/отвергнуть информацию, запросить информацию, подписаться на хранилище информации с помощью постоянного запроса (например, с помощью подписки) и отменить такие подписки (например, отказаться от подписки). Различные виды взаимодействия между узлами и хранилищем информации могут быть вместе названы запросами. Узел может передавать запросы к хранилищу информации посредством смарт-пространства и принимать информацию из хранилища информации посредством смарт-пространства. Узел может быть осведомлен о смарт-пространстве в общем, но не обязательно должен быть осведомлен о соединениях в смарт-пространстве.
Хранилища информации смарт-пространства или любой другой конфигурации сети (например, статической сети) могут быть пассивными объектами, которых хранят данные. При этом хранилище информации в смарт-пространстве может быть рассмотрено как имеющее по своей природе свободную форму, посредством семантики, веб-типа или ресурсов информации на базе пространства. Любое устройство, имеющее перезаписываемую память и подключаемое к смарт-пространству, может реализовывать хранилище информации. При этом устройства, реализующие хранилище информации, могут быть способны хранить, извлекать, вычислять, передавать и принимать информацию. Соответственно, в некоторых вариантах осуществления хранилище информации может быть логическим объектом, описывающим то место, где информация может быть сохранена. Согласно различным вариантам осуществления хранилище информации может охватывать множество устройств. Хранилища информации могут сохранять информацию, ассоциированную со смарт-пространством, и информацию, которая может быть доступна посредством смарт-пространства.
Поскольку хранилища информации могут быть реализованы с помощью любого устройства, подключенного к смарт-пространству, данные из смарт-пространства могут быть распределены или рассеяны в смарт-пространстве среди хранилищ информации. При этом данные в смарт-пространстве могут быть обработаны посредством алгоритма распределения. Для распределения данных среди хранилищ информации смарт-пространства может быть использован любой известный алгоритм распределения (например, частичные замыкания данных, сигнатуры данных и т.д.).
В некоторых примерах осуществления алгоритм распределения может также использоваться для разложения набора данных на частичные замыкания (также известные как частичные замыкания данных, partial data closures), и эти частичные замыкания могут быть распределены в смарт-пространстве. Согласно различным примерам осуществления исходный набор данных или надежное предсказание исходного набора данных могут быть генерированы из двух или более частичных замыканий.
Примеры осуществления настоящего изобретения могут обеспечивать преобразование или синтез частичных замыканий в неприводимые полиномиальные выражения необходимой степени или в сигнатуры данных, используя алгоритм факторизации или другие математические методы (например, круговые полиномиальные расширения) в средах хранилищ данных, таких как сети связи. При этом может быть принят запрос, который идентифицирует данные (например, локальные данные) для генерирования частичных замыканий. Эти сигнатуры данных могут считаться относительно легкой версией частичных замыканий, поскольку сигнатуры данных меньше по размеру, чем соответствующие частичные замыкания. В некоторых примерах осуществления сигнатуры данных имеют меньший размер, поскольку избыточные данные устранены. Сигнатуры данных сохраняют достаточную информацию для того, чтобы эти сигнатуры данных могли использоваться для функционирования запросов. Сигнатуры данных могут быть сохранены в хранилищах информации смарт-пространства для облегчения удовлетворения последующих запросов. Созданные сигнатуры данных в соответствии с различными примерами осуществления способствуют эффективному преобразованию, распределению и агрегации информации при наличии распределенной и частичной информации.
В примере смарт-пространства различные сигнатуры данных могут быть генерированы в ответ на запрос или другое триггерное сообщение. При этом может быть генерировано локальное частичное замыкание. Кроме того, могут быть генерированы удаленные замыкания данных, а также удаленные сигнатуры данных в других устройствах. Таким образом, сигнатуры данных могут находиться в множестве устройств в сети, например в смарт-пространстве. Согласно различным примерам осуществления сигнатуры данных могут быть генерированы таким способом, который обеспечивает ортогональность по меньшей мере между некоторыми сигнатурами данных в других устройствах.
При этом содержание запроса может быть преобразовано с использованием той же техники для генерирования целевой сигнатуры. Целевая сигнатура может быть распределена по смарт-пространству для облегчения идентификации сигнатур данных, которые соответствуют запрашиваемому содержимому запроса. После идентификации соответствующих сигнатур данных эти сигнатуры данных могут быть напрямую объединены для генерирования дедуктивной сигнатуры.
В некоторых примерах осуществления сигнатуры данных, используемые в операции синтеза, ортогональны между собой. Дедуктивная сигнатура может затем быть преобразована, с использованием, например, функции доступа или ключа, в полное замыкание данных, запрашиваемых запросом. Таким образом, примеры осуществления настоящего изобретения позволяют для целевых сигнатур и сигнатур данных упростить надежную и целостную динамическую дедукцию результата запроса данных в смарт-пространстве посредством частичной распределенной информации.
Соответственно, примеры осуществления настоящего изобретения позволяют обеспечить баланс между вычислением замыканий перед запросом по сравнению с определением функции доступа. Примеры осуществления могут, таким образом, динамически или по требованию генерировать результаты запроса. Кроме того, процедура определения результатов запроса может сводиться к смешанному обратному/прямому вычислению появляющейся информации, обеспечивая баланс различных факторов.
При этом, учитывая текущее состояние слова (например, частичного замыкания или сигнатуры данных), могут быть представлены по меньшей мере три отдельных объекта информации, подлежащих идентификации или употреблению. Эти объекты могут быть наблюдениями, относящимися к текущей ситуации, общими знаниями о любых подобных ситуациях и представлениями, относящимися не напрямую к наблюдаемым особенностям текущей ситуации. В случае логических подходов, наблюдения и общие знания могут быть кодированы на некотором логически-ориентированном языке. В вероятностных подходах общие знания могут быть смоделированы распределением вероятности на наборе возможных ситуаций. Наблюдения могут привести к частичной конкретизации некоторых переменных. Обоснование в отношении данных в смарт-пространстве может состоять из выведения представлений из наблюдений и общих знаний, которые выглядят достоверными в множестве ситуаций.
В логических подходах это обоснование может быть достигнуто с помощью логической дедукции. В теории вероятности представление может следовать из вычисляемых условных вероятностей соответствующих утверждений, где определяющее событие может собрать имеющиеся наблюдения. Наблюдения могут быть надежными и непротиворечивыми, а вычисляемые представления, наоборот, могут приниматься на веру. В результате может существовать сильное сходство между логическими и вероятностными подходами к обоснованию. В некоторых случаях уверенные отношения между информацией, совместимые с механизмами дедуктивных замыканий, могут быть заменены семейством отношений с вероятностями. Семейство отношений с вероятностями можно охарактеризовать тем же набором принятых представлений. Таким образом, может быть генерировано семейство надежных распределенных дедуктивных замыканий. Задача дедуктивного разложения замыканий может сходиться к задаче поиска и выделения набора фактов (например, набора данных) в непересекающемся транзитивном замыкании, генерированном в силу свойств среды смарт-пространства. Примеры осуществления настоящего изобретения используют неразложимые компоненты или минимум компонент, которые поддерживаются и подходят для рассмотрения и композиции.
При рассмотрении семейства распределенных дедуктивных замыканий может быть использовано следующее предположение. Исходя из критерия разложимости для элементарных теорий и логических обоснований на основе разделения для первоочередных и пропозициональных теорий, наборы фактов (например, наборы данных) могут быть признаны разложимым дедуктивным замыканием с точки зрения соответствующей сигнатуры. В некоторых случаях это может быть истиной, если дедуктивное замыкание существует в форме предикативного исчисления всех наборов фактов некоторых частичных замыканий с ортогональными сигнатурами. После объединения или синтеза ортогональные сигнатуры могут генерировать полную или дедуктивную (выведенную) сигнатуру данных.
В связи с этим набор фактов (например, набор данных в пределах одного или более хранилищ информации) может быть представлен тройной формой фактов, а именно представлением субъект-предикат-объект, где предикат может быть непротиворечивым и может, таким образом, способствовать формированию необходимой сигнатуры частичного замыкания (например, сигнатуры данных), которая ортогональна к любой другой сигнатуре частичного замыкания. В итоге предикат может формировать набор потенциальной информации по применению и определению. Таким образом, результатом генерирования распределенного дедуктивного замыкания может быть обеспечение полного или кластерного образа предикатов по всей доступной информации. Для обеспечения независимости от непротиворечивости предикатов могут быть генерированы и идентифицированы некоторые подходящие разложимые фрагменты в терминах сигнатур.
Соответственно, в некоторых примерах осуществления существуют два таких замыкания (например, данные или дедуктивное), что ассоциированные с ними сигнатуры могут быть объединены с формированием сигнатуры конечного дедуктивного замыкания для конкретного информационного пространства. При этом если существует факт (например, подмножество набора фактов), который является частью сигнатуры конечного дедуктивного замыкания, то согласно различным примерам осуществления существует по меньшей мере два таких других факта (например, подмножества набора фактов), что их соответствующие сигнатуры данных ортогональны сигнатуре конечного дедуктивного замыкания.
Таким образом, из этого следует, что каждый факт (например, подмножество набора фактов) конечного дедуктивного замыкания, который неразложим в этом замыкании, содержит части информации (например, субъект-предикат-объекты) только из одного компонента разложения замыкания. Соответственно, может быть использовано разбиение сигнатуры, а также компоненты замыкания, по меньшей мере частично на основе системы правил (аксиом) замыкания.
Эффективность и применимость различных вариантов осуществления настоящего изобретения иллюстрируются задачей дедуктивного синтеза замыканий и применимы к любой обработке и анализу информации. Таким образом, имея набор фактов и/или запросов, пути для доступа к набору фактов, заранее заданный формат представления этих фактов (например, тройка субъект-предикат-объект), где одно из полей форматов (например, поле предиката) согласуется со всеми фактами и формами необходимого частичного замыкания, ортогонального к любой другой сигнатуре частичного замыкания, некоторые варианты осуществления настоящего изобретения могут быть реализованы для выполнения синтеза распределенных дедуктивных замыканий.
Учитывая структуру сигнатур, описанную выше, действительный неприводимый полином с соответствующим ключом может использоваться для создания и проверки сигнатур. При наличии ортогональности по определению полиномиального свойства и принимая часть предиката как непротиворечивое представление частичного замыкания во всей доступной информации, могут быть описаны примеры механизмов для синтеза распределенного дедуктивного замыкания.
По отношению к функционированию сети (например, смарт-пространства) факты или данные могут быть введены или удалены, а запросы могут быть введены и/или удовлетворены. Кроме того, постоянные запросы, которые могут быть особым типом запроса (известным также как подписка), также могут быть введены и/или удовлетворены. Факты и запросы могут быть распределены или рассеяны однородным или асимметричным/неоднородным способом. Кроме того, в некоторых примерах осуществления факты и запросы могут быть кодированы с помощью некоторого вектора. В результате факты и запросы могут быть приняты в качестве входных параметров некоторых заранее заданных полиномиальных форм, и неприводимый полином может быть использован в качестве механизма распределения.
Так как неприводимые полиномы могут быть созданы с помощью алгоритма факторизации, то полученное неприводимое выражение может быть представлено как произведение требуемого числа отдельных неприводимых полиномов определенной степени. Таким образом, передача информации может быть представлена посредством накопленного набора отдельных неприводимых полиномов, кроме того, передача информации может быть преобразована в один или более неприводимых полиномов. В итоге наиболее релевантное логическое замыкание первого порядка, которое является набором фактов с избыточностью, может быть представлено как заранее заданная форма полиномиального выражения.
В этой связи, принимая набор совокупных запросов как Q={q 1, , qm}, который может включать один или более запросов по набору k различных источников информации (например, хранилищ информации), набор прочтений источника информации может быть определен как вектор x= x1, , xk k. Запрос или запросы могут запросить, например, совокупную величину некоторого подмножества данных, хранящихся в информационных источниках. Запрос или запросы могут быть также ассоциированы с конкретными данными частоты запроса, которые могут быть пропорциональны с ассоциированной нагрузкой. Источники информации могут быть определены с помощью структурированных или неструктурированных информационных элементов, например, в формате структуры описания ресурсов (RDF), в формате двоичного мультимедиапотока и т.п. Каждый запрос может быть поэтому выражен как к-битный вектор, называемый вектором источника информации.
При этом элемент вектора источника информации может быть равен единице, если источник информации x делает вклад по данному запросу. В противном случае этот элемент вектора может быть равен нулю. Например, элемент j вектора источника информации может быть единицей, если xj вносит свой вклад в значение qj. С другой стороны, если xj не вносит вклад в значение qj, то элемент j может быть равен нулю. При этом элементы по отношению к примеру запроса, q j, и прочтения источника информации x могут быть представлены в виде скалярного произведения запроса и прочтений источника информации (qj·x). Таким образом, элементами вектора источника информации могут быть входные параметры требуемой полиномиальной формы.
После определения вектора источника информации может быть выполнена верификация или проверка по отношению к этому вектору источника информации, путем определения того, может ли быть генерирован класс эквивалентности. При этом, как только определяются запросы по отношению к источникам информации, может быть сделано предположение, что все наборы совокупных запросов имеют одинаковые частоты в рабочей нагрузке. Другими словами:
где является нагрузкой набора совокупных запросов.
Соответственно, поскольку совокупные запросы имеют одинаковую частоту, объединение всех регионов (например, источников информации), охватывающихся одинаковым набором совокупных запросов, может быть определено как класс эквивалентности, который формирует набор информации. Например, набор запросов {q1,q 2,q3}, можно представить в виде {EC1 ,EC2,EC3,EC4}, что может быть охвачено посредством q2 и q3 и может быть представлено в виде [0,0,1]T.
Если вектор источника информации создается и проверяется посредством генерирования класса эквивалентности, то может быть возможно детерминированное генерирование неприводимого полинома над набором класса эквивалентности данной степени. При этом построение класса эквивалентности означает, что неприводимый полином f над конечным полем F степени m существует. Если m разлагается на простые множители, то может быть генерировано построение полиномов над конечным полем F степени , для i=1, , r, и полиномы могут быть объединены вместе, чтобы сформировать неприводимый многочлен степени m.
Результирующий неприводимый полином может быть использован как один способ порождения в механизме распределения. Так как результирующий неприводимый полином может быть генерирован посредством алгоритма факторизации, результирующий неприводимый полином может быть представлен как произведение некоторого числа отдельных неприводимых полиномов заданной степени.
При этом круговой полином Ф q=Xq-1+ +1 может быть факторизован для получения неприводимого полинома степени m. Эта процедура может создать конечное поле (например, круговую группу порядка pm-1, где p является заранее заданным простым числом) и примитивным q-м корнем определенной единицы в конечном поле. Построение полинома может быть, таким образом, сведено к нахождению корней полиномов вида Xq -c над конечным полем. Затем может быть выполнено сокращение факторизацией при степени от m до 1. В результате может быть индуктивно определено множество неприводимых полиномов f(1), , f(k) поле F степени m, где корни являются примитивными корнями qi-й степени из единицы. Согласно некоторым вариантам осуществления набор неприводимых полиномов может быть сигнатурами данных для использования как описано здесь.
Посредством детерминированного алгоритма факторизации пример подхода, предлагаемый выше, может привести к построенному детерминированным образом неприводимому полиному, который является произведением k отдельных неприводимых полиномов степени l в конечном поле F, где l влияет на время выполнения алгоритма. Соответственно, передача конкретной информации может быть представлена посредством накопленного набора отдельных неприводимых полиномов, и этот накопленный набор отдельных неприводимых полиномов может быть преобразован в один неприводимый полином из набора или компонентов набора. В результате согласно различным примерам осуществления наиболее релевантное логическое информационное замыкание первого порядка, которое является набором информации (фактами или запросами) с избыточностью, может быть представлено в форме полинома.
Таким образом, задача расчета общего информационного замыкания может быть сведена к задаче обновлений неприводимых полиномов путем повторения генерирования неприводимых полиномов или сигнатур данных. После построения неприводимого полинома f степени m, определяемого факторизацией кругового полинома Ф q=Xq-1+ +1, этот неприводимый полином может быть обновлен на основе изменений в исходных данных или запросах и/или изменений, например, топологии сети. Кроме того, могут быть рассмотрены алгоритмы для факторизации кругового полинома Фq с использованием n случайных или определяемых элементов поля за (n log p) 0(1) шагов.
Далее, согласно некоторым примерам осуществления также может быть выполнена проверка соответствия синтезированных полиномов и согласование их с политикой/стратегией рассредоточения и агрегации. Кроме того, процесс преобразования информации, описанный здесь, может быть двунаправленным, что означает, что информация может быть преобразована прямо и обратно между исходными основными данными и полиномиальной формой.
Неприводимые полиномы или неразлагаемые компоненты информации могут быть минимально поддерживаемыми компонентами, представляющими интерес для рассмотрения и дальнейшей композиции информации. Оценка данных, взятых из информационного домена (например, исходное представление данных), и преобразование данных в неприводимый полином (например, в сигнатуры данных) могут обеспечить способность представлять информационное замыкание с точки зрения домена, где может быть выполнена эффективная обработка информации.
В результате вышесказанного задача выявления наиболее общего дедуктивного замыкания, также известного как ядро D, может быть сведена к задаче обновления неприводимых полиномиальных выражений, представляющих ядро D. Таким образом, синтез дедуктивного замыкания может быть результатом обновляемых неприводимых полиномиальных выражений.
Принимая во внимание задачу обновлений неприводимых полиномиальных выражений, процесс синтеза дедуктивного замыкания (генерирование замыкания фактов) может играть роль правила обновления неприводимых полиномиальных выражений. Обновления могут проводиться в стиле агрегирования, и каждое обновление может быть подвергнуто наблюдению и проверке на предмет целесообразности такого обновления. Если будет определено, что обновление не будет вносить полезную информацию, то соответствующее неприводимое полиномиальное выражение может быть проигнорировано вместе с ассоциированными фактами.
Примеры осуществления также предоставляют подходящий механизм для формирования образа (например, образа ядра) дедуктивного замыкания и для отслеживания и сохранения наиболее важных фактов, которые легко доступны. Поэтому этот механизм может отслеживать наиболее общее или полезное дедуктивное замыкание и выполнять соответствующую обработку на основе ограничений смарт-пространства и устройств, подключенных к смарт-пространству. Поэтому дедуктивное замыкание может быть собрано посредством наиболее полезных элементов информации, где эти элементы информации могут быть структурированными и неструктурированными. В итоге дедуктивное замыкание может считаться как статическим, так и динамическим.
На фиг.1 показан способ синтеза распределенного дедуктивного замыкания и полиномиального преобразования и использования данных в соответствии с примерами осуществления настоящего изобретения. При этом на этапе 100 в сеть (например, сеть динамически распределенных устройств) могут поступить запросы. Эти запросы могут быть любым типом сообщения, таким как, например, требование или запрос на хранение информации. На этапе 105 может осуществляться определение того, могут ли запросы быть разложены на составные части. Если так, то этот запрос может быть распределен в сети на этапе 120. Если запрос не может быть разложен, то этот запрос может быть перенаправлен на обновляемый путь (этап 110). Неразложимые запросы могут быть затем проведены по пути внутри сети, и на этапе 115 может быть предпринят выбор частичного замыкания, учитывая эти запросы. Запросы могут быть затем поданы в одно или более индивидуальных устройств сети для преобразования этих запросов, как показано переходом на общую схему 101 одного устройства.
Что касается разложимых запросов, то эти запросы могут быть распределены на этапе 120 и приняты одним или более устройством в сети. После получения запрос может пройти в общую схему 101 одного устройства. На этапе 125 может произойти выбор частичных замыканий и кодирование запросов. При этом информационный домен 130 может обеспечивать данные посредством процесса 135 анализа метаданных хранимой информации для выбора частичного замыкания и кодирования информации на этапе 125. Информационный домен 130 может быть представлением домена данных, который обеспечивает метаданные, включая фактический контент и контент, связанный с запросом. Информация, касающаяся данных, может быть предоставлена инфраструктурой файловой системы распределенных объектов и может включать в себя распределение и иерархию объектов метаданных.
Дополнительно, локальный кэш полиномов может предоставлять данные для выбора частичного замыкания и кодирования информации. На этапе 145 запросы и/или данные, полученные посредством информационного домена 130, могут быть сокращены путем построения, например, круговых полиномиальных расширений. На этапе 150 полином для частичного замыкания может быть построен и сохранен в локальном кэше 140 полиномов. Построенные полиномы могут быть объединены на этапе 155. Результат может быть затем упрощен посредством факторизации, например с помощью алгоритма математической факторизации. Последовательности операций от 145 до 160 могут происходить с регулярными или нерегулярными интервалами, чтобы поддерживать точность полиномиальных выражений, относящихся к данным частичных замыканий.
На этапе 165 может быть выполнено построение полиномов над или в отношении расширений (например, круговых полиномиальных расширений). Результаты могут быть сохранены для сети в кэше 175 полиномов. При этом контент кэша полиномов может быть распределен по сети на этапе 120, например, на основе алгоритма распределения. На этапе 170 дедуктивные замыкания могут быть восстановлены в точке сети, в которой был получен запрос, или в другом подходящем месте.
Фиг.1b является иллюстрацией блок-схемы другого способа преобразования и использования данных на основе полиномов в соответствии с различными примерами осуществления настоящего изобретения. На этапе 180 обращения (например, запросы) или информационный поток могут поступить в систему, которая реализует примеры осуществления настоящего изобретения. При этом в некоторых примерах осуществления информационный поток может индицировать изменение в базовых данных. На этапе 182 может быть выполнен выбор классов и определение конечных полей. На этапе 184 может быть выполнено сокращение для построения круговых расширений. При этом согласно некоторым примерам осуществления на этапе 184 может быть генерирован вектор источника информации. Далее на этапе 186 может быть выполнено построение примитивных полиномов. На этапе 194 примитивные полиномы могут сохраняться либо записываться, и выбор классов и определение конечных полей может начаться на этапе 182 снова.
Соответственно, на этапе 188 полиномы могут быть выведены в соответствии с различными примерами осуществления настоящего изобретения. Далее на этапе 190 может быть выполнено сведение к факторизации. Сведение к факторизации может осуществляться итеративным способом, и фактически сведение к построению круговых расширений может быть выполнено снова на этапе 184. Далее, после сведения к факторизации на этапе 190, построение полиномов над расширениями может иметь место на этапе 192. В результате может быть генерирован набор неприводимых полиномов или сигнатур данных. Для обновления (например, случайным образом) полиномов на этапе 196 пример способа может снова начинаться на этапе 180, где запросы и/или информационный поток могут быть введены в систему.
Фиг.2 иллюстрирует пример устройства 200, сконфигурированного для преобразования и использования данных на основе полиномов в соответствии с различными примерами осуществления настоящего изобретения. Устройство 200 и, в частности, процессор 205 могут быть сконфигурированы для осуществления операций и функциональных возможностей, общее описание которых дано выше, например в части генерирования и распределения неприводимых полиномов или сигнатур данных и обработки запросов для извлечения данных. Кроме того, устройство 200 и, в частности, процессор 205 могут быть сконфигурированы для выполнения некоторых или всех операций, описанных согласно фиг.1а, 1b и/или 3.
В некоторых примерах осуществления устройство 200 может быть реализовано (или включено в качестве компонента) как вычислительное устройство и/или устройство связи с проводными или беспроводными коммуникационными возможностями. Некоторые примеры устройства 200 включают компьютер, сервер, мобильный терминал (например, мобильный телефон), портативный цифровой ассистент (PDA), пейджер, мобильное телевидение, игровое устройство, мобильный компьютер, портативный компьютер, камеру, видеомагнитофон, аудио/видеоплеер, радиоприемник и/или устройство системы глобального позиционирования (GPS), сетевой объект, например точку доступа (например, базовую станцию), или любую комбинацию вышеприведенных устройств и т.п. Кроме того, устройство 200 может быть сконфигурировано для реализации различных аспектов настоящего изобретения, как описано здесь, включая, например, различные способы настоящего изобретения, где эти способы могут быть реализованы посредством аппаратного обеспечения и/или процессора, сконфигурированного программным обеспечением (например, процессор 205), машиночитаемого носителя и т.п.
Устройство 200 может содержать в себе или взаимодействовать с процессором 205, запоминающим устройством 210 и коммуникационным интерфейсом 215. Кроме того, в некоторых вариантах осуществления (например, таких, где устройство 200 является мобильным терминалом) устройство 200 также содержит пользовательский интерфейс 225. Процессор 205 может быть реализован в виде различных средств, включая, например, микропроцессор, сопроцессор, контроллер, или в виде различных других устройств обработки, включая интегральные схемы, например ASIC (специализированные интегральные схемы), FPGA (гибкие программируемые матрицы вентилей), либо аппаратный ускоритель. При этом процессор, будучи реализован как FPGA, ASIC и т.п., может быть специализированно аппаратно сконфигурирован для выполнения операций процессора 205, как описано здесь. В примере осуществления процессор 205 сконфигурирован для выполнения инструкций, хранящихся в запоминающем устройстве 210, или инструкций, доступных для процессора 205 иным способом. Процессор 205 может быть сконфигурирован для обеспечения связи посредством коммуникационного интерфейса 215, с помощью, например, управления аппаратного и/или программного обеспечения, входящего в коммуникационный интерфейс 215.
Запоминающее устройство 210 может быть сконфигурировано для хранения разнообразной информации, участвующей в реализации вариантов осуществления настоящего изобретения, например целевых сигнатур и сигнатур данных. Запоминающее устройство 210 может быть машиночитаемым носителем данных, который может включать энергозависимую и/или энергонезависимую памяти. Например, запоминающее устройство 210 может содержать оперативную память (RAM), включая динамическую и/или статическую RAM, встроенную или внешнюю память кэша и/или т.п. Кроме того, запоминающее устройство 210 может содержать энергонезависимую память, которая может быть встроенной и/или съемной, и может включать, например, постоянную память, флеш-память, магнитные запоминающие устройства (например, жесткие диски, флоппи-дисководы, магнитные ленты и т.д.), оптические дисководы и/или носители, энергонезависимую оперативную память (NVRAM) и/или т.п. Запоминающее устройство 210 может содержать область кэша для временного хранения данных. При этом некоторые или все запоминающие устройства 210 могут быть включены в процессор 205.
Кроме того, запоминающее устройство 210 может быть сконфигурировано для хранения информации, данных, приложений, читаемых компьютером инструкций программного кода или подобного для обеспечения возможности выполнения процессором 205 и устройством 200 различных функций в соответствии с примерами осуществления настоящего изобретения. Например, запоминающее устройство 210 может быть сконфигурировано для буферирования входных данных для обработки процессором 205. Дополнительно или альтернативно, запоминающее устройство 210 может быть сконфигурировано для хранения инструкций, исполняемых процессором 205.
Пользовательский интерфейс 225 может взаимодействовать с процессором 205 для приема введенных пользователем данных с пользовательского интерфейса 225 и/или для обеспечения вывода пользователю, например, звуковой, визуальной, механической или иной выходной информации. Пользовательский интерфейс 225 может содержать, например, клавиатуру, мышь, джойстик, дисплей (например, сенсорный дисплей), микрофон, громкоговоритель или другие механизмы ввода/вывода. В некоторых примерах осуществления дисплей пользовательского интерфейса 225 может быть сконфигурирован для представления результатов запроса, выполняемого в соответствии с вариантами осуществления настоящего изобретения.
Коммуникационным интерфейсом 215 может быть любое устройство или средство, реализованное в оборудовании, или компьютерном программном продукте, или в комбинации аппаратного и программного обеспечения, которое сконфигурировано для приема и/или передачи данных из сети l в сеть, и/или любое другое устройство или модуль, взаимодействующие с устройством 200. При этом коммуникационный интерфейс 215 может содержать, например, антенну, передатчик, приемник, трансивер и/или поддерживающее аппаратное обеспечение, включая процессор или компьютерный программный продукт для возможности связи с сетью 220. При этом сеть 220 может быть смарт-пространством или другой сетью динамически распределенных устройств. Устройство 200 может быть одним из многих устройств, которые являются частью сети динамически распределенных устройств (например, сети 220), определяемой как сеть, где устройства выходят или входят в сеть в любое время. В некоторых примерах осуществления сеть 220 может иллюстрировать пиринговое соединение. Посредством коммуникационного интерфейса 215 устройство 200 может взаимодействовать с различными другими сетевыми объектами.
Коммуникационный интерфейс 215 может быть сконфигурирован для обеспечения связи в соответствии с любым стандартом проводной или беспроводной связи. Например, коммуникационный интерфейс 215 может быть сконфигурирован для обеспечения связи в соответствии с протоколами беспроводной связи второго поколения (2G) IS-136 (множественный доступ с временным разделением (TDMA)), GSM (глобальная система мобильной связи), IS-95 (доступ с кодовым разделением каналов (CDMA)), с беспроводными протоколами связи третьего поколения (3G), например универсальной системой мобильной связи (UMTS), CDMA2000, с широкополосным CDMA (WCDMA) и синхронным CDMA с временным разделением (TD-SCDMA), с беспроводными протоколами связи поколения 3.9 (3.9G), например выделенной универсальной наземной сетью радиодоступа (E-UTRAN), с беспроводными протоколами связи четвертого поколения (4G), протоколами продвинутой международной мобильной связи (IMT-Advanced), протоколами технологии долговременной эволюции (LTE), включая развитую LTE и т.п. Кроме того, коммуникационный интерфейс 215 может быть сконфигурирован для обеспечения связи в соответствии с такими технологиями, как, например, радиочастотная (RF), технология инфракрасного порта (IrDA), или в соответствии с любой из числа различных технологий беспроводной сети, включая технологии WLAN, например IEEE 802.11 (например, 802.1 1а, 802.1 1b, 802.1 1g, 802.1 1n и т.д.), протоколы беспроводной локальной сети (WLAN), технологии всемирного взаимодействия для микроволнового доступа (WiMAX), например IEEE 802.16, и/или технологии беспроводной персональной сети (WPAN), например IEEE 802.15, Bluetooth (ВТ), ультраширокополосная связь (UWB) и/или т.п.
Менеджер 240 запросов/данных и полиномиальный генератор 245 устройства 200 могут быть любым средством или устройством, реализованным в оборудовании, компьютерном программном продукте, или комбинацией аппаратного и программного обеспечения, например процессором 205, реализующим программные инструкции, или сконфигурированным аппаратно процессором 205, который сконфигурирован для выполнения функций менеджера 240 запросов/данных и/или полиномиального генератора 245, как описано здесь. В примере осуществления процессор 205 может содержать или иным образом управлять менеджером 240 запросов/данных и/или полиномиальным генератором 245. В различных примерах осуществления менеджер 240 запросов/данных и/или полиномиальный генератор 245 могут находиться в различных устройствах, так что некоторые или все функциональные возможности менеджера 240 запросов/данных и/или полиномиального генератора 245 могут быть выполнены первым устройством, а остальная часть функциональных возможностей менеджера 240 запросов/данных и/или полиномиального генератора 245 может быть выполнена иным одним или более устройством.
Менеджер 240 запросов/данных может быть сконфигурирован для идентификации данных, которые релевантны для набора из одного или более запросов. При этом идентифицированные данные могут быть идентифицированы и размещены в запоминающем устройстве, доступном посредством сети 220, либо идентифицированные и размещенные данные могут быть сохранены в запоминающем устройстве 210. Менеджер 240 запросов/данных также может быть сконфигурирован для генерирования вектора источника информации. Вектор источника информации может быть определен таким образом, чтобы указывать источники информации, ассоциированные с данными, которые релевантны для набора запросов. В некоторых примерах осуществления менеджер 240 запросов/данных может быть сконфигурирован для выполнения проверки вектора источника информации путем создания класса эквивалентности.
Полиномиальный генератор 245 может быть конфигурирован для генерирования кругового полинома на основе вектора источника информации. Кроме того, полиномиальный генератор 245 может быть конфигурирован для факторизации кругового полинома с целью генерирования множества ортогональных сигнатур данных. Далее, в некоторых примерах осуществления полиномиальный генератор 245 также может быть сконфигурирован для факторизации кругового полинома с целью генерирования множества ортогональных сигнатур данных, где эти ортогональные сигнатуры данных являются неприводимыми полиномами. В некоторых примерах осуществления полиномиальный генератор 245 также может быть конфигурирован для обновления ортогональных сигнатур данных путем факторизации нового кругового полинома, генерированного на основе обновленных данных.
Согласно некоторым примерам осуществления менеджер 240 запросов/данных также может быть сконфигурирован для управления распределением ортогональных сигнатур данных в хранилища информации в пределах сети динамически распределенных устройств. Дополнительно или альтернативно, менеджер 240 запросов/данных может быть сконфигурирован для приема нового запроса и обнаружения местоположения двух или более ортогональных сигнатур данных на основе нового запроса. Две или более ортогональных сигнатуры данных могут быть обнаружены через сеть 220 или в запоминающем устройстве 210.
При этом полиномиальный генератор 245 может быть конфигурирован для восстановления кругового полинома на основе обнаруженных ортогональных сигнатур данных. Далее, полиномиальный генератор также может быть сконфигурирован для генерирования, на основе кругового полинома, дедуктивного замыкания данных из кругового полинома.
Фиг.3 и фиг.1а, 1b, описанные выше, иллюстрируют блок-схемы системы, способа и компьютерного программного продукта в соответствии с примерами осуществления настоящего изобретения. Следует учитывать, что каждый блок, этап или операция блок-схемы и/или комбинации блоков, этапов или операций в блок-схеме могут быть реализованы с помощью различных средств. Примеры средств для реализации блоков, этапов или операций блок-схемы и/или комбинаций блоков, этапов или операций в блок-схеме включают аппаратные средства, встроенное программное обеспечение и/или компьютерный программный продукт, включая запоминающее устройство, хранящее одну или множество инструкций компьютерного программного кода, программные инструкции или исполняемые читаемые компьютером инструкции программного кода. Примеры средств для реализации блоков, этапов или операции блок-схемы и/или комбинации блоков, этапов или операций в блок-схеме также включают процессор, например процессор 205. Этот процессор может, например, быть конфигурирован для реализации операций согласно фиг.1а, 1b и/или фиг.3 путем выполнения аппаратно реализованных логических функций, выполнения хранимых инструкций или выполнения алгоритмов для реализации каждой из операций. Альтернативно, устройство может содержать средства для выполнения каждой операции блок-схемы. При этом в соответствии с примером осуществления примеры средств для выполнения операций согласно фиг.1а, 1b и/или фиг.3 или иных операций, описанных в основном выше, включают, например, процессор 205, причем этот процессор выполняет алгоритм обработки информации, как описано выше, менеджер 240 запросов/данных и/или полиномиальный генератор 245.
В одном примере осуществления одна или более процедур, описанных здесь, реализованы с помощью компьютерного программного продукта, содержащего инструкции программного кода. При этом инструкции программного кода, которые реализуют процедуры, описанные здесь, могут быть сохранены запоминающим устройством (или в запоминающем устройстве), например запоминающим устройством 210, относящимся к некоторому устройству (например, к устройству 200), и выполняться процессором, например процессором 205. Любые такие инструкции программного кода могут быть загружены в компьютер, процессор или в другое программируемое устройство (например, процессор 205, запоминающее устройство 210) для создания машины, которая, в свою очередь, содержит средства для реализации функций, указанных в блоке (блоках), этапе (этапах) или операции (операциях) блок-схемы, то есть как в основном описано выше. В некоторых примерах осуществления эти инструкции программного кода также хранятся на читаемом компьютером носителе, который диктует компьютеру, процессору или другому программируемому устройству функционировать определенным образом, так что эти инструкции, хранящиеся на читаемом компьютером носителе, производят определенные действия, которые также включают в себя средства, реализующие функции, указанные в блоке (блоках), этапе (этапах) или операции (операциях) блок-схемы. Инструкции программного кода также могут быть загружены в компьютер, процессор или другое программируемое устройство для получения ряда операционных этапов, выполняемых на/в компьютере, процессоре или на/в другом программируемом устройстве, для получения такого процесса, реализованного компьютером, что инструкции, которые выполняются в компьютере, процессоре или другом программируемом устройстве, обеспечивают этапы для реализации функций, указанных в блоке (блоках), этапе (этапах) или операции (операциях) блок-схемы.
Соответственно, блоки, этапы или операции блок-схемы поддерживают комбинации средств для выполнения указанных функций, комбинации этапов для выполнения указанных функций и инструкции программного кода для выполнения указанных функций. Также следует понимать, что в некоторых примерах осуществления один или более блоков, этапов или операций блок-схемы, а также комбинации блоков, этапов или операций в блок-схеме реализуются специализированной аппаратной компьютерной системой или процессорами, которые выполняют определенные функции или этапы, или комбинацией специализированного аппаратного обеспечения и инструкций программного кода.
Фиг.3 показывает блок-схему, описывающую способ преобразования и использования данных на основе полиномов. В соответствии с различными примерами осуществления операции на фиг.3 выполняются процессором 205, который может быть специально сконфигурирован для выполнения операций согласно фиг.3.
На этапе 300 пример способа может содержать идентификацию данных. При этом данные могут быть идентифицированы по признаку их релевантности к набору из одного или более запросов. Кроме того, на этапе 310 может быть генерирован вектор источника информации. Вектор источника информации может указывать источники информации, которые ассоциированы с данными, имеющими отношение к набору запросов. Дополнительно, на этапе 310 в некоторых примерах осуществления генерирование вектора источника информации может содержать выполнение проверки вектора источника информации путем генерирования класса эквивалентности.
На этапе 320 пример способа может содержать генерирование кругового полинома. Круговой полином может быть основан на векторе источника информации. Далее, на этапе 330 круговой полином может быть факторизован для генерирования множества ортогональных сигнатур данных. В некоторых примерах осуществления ортогональные сигнатуры данных могут быть неприводимыми полиномами.
Дополнительно или альтернативно, на этапе 340 пример способа может содержать директиву распределять ортогональные сигнатуры данных по хранилищам информации в сети динамически распределенных устройств. Дополнительно или альтернативно, на этапе 390 пример способа может содержать обновление ортогональных сигнатур данных путем факторизации нового кругового полинома, генерированного на основе обновленных данных.
Дополнительно или альтернативно, в некоторых примерах осуществления на этапе 350 может быть получен новый запрос. На этапе 360 могут быть обнаружены две или более ортогональные сигнатуры данных. Эти две или более ортогональные сигнатуры данных на этапе 370 могут быть использованы для реконструкции кругового полинома на основе обнаруженных ортогональных сигнатур данных. При этом, кроме того, на этапе 380 может быть генерировано дедуктивное замыкание данных из кругового полинома.
Специалисты в той области, к которой относится изобретение, могут предложить множество модификаций и других вариантов осуществления данного изобретения, изложенного здесь, с получением преимуществ от изобретения, представленного выше и на чертежах. Поэтому следует понимать, что изобретение не ограничено конкретными описанными вариантами осуществления и указанные модификации и другие варианты осуществления попадают в рамки приложенной формулы изобретения. Кроме того, хотя вышеприведенное описание и чертежи описывают примеры осуществления в контексте некоторых примеров комбинаций элементов и/или функций, нужно учитывать, что другие комбинации элементов и/или функций могут быть обеспечены альтернативными вариантами осуществления без выхода за рамки прилагаемой формулы изобретения. При этом, например, различные комбинации элементов и/или функций, отличные от тех, которые прямо описаны выше, также могут быть включены в формулу изобретения. Хотя здесь используются конкретные термины, они используются только в общем и описательном смысле, а не с ограничительными целями.
Класс G06F17/30 информационный поиск; структуры баз данных для этой цели
Класс G06N7/00 Компьютерные системы, основанные на специфических математических моделях