общая система редактирования моделей
Классы МПК: | G06F17/24 редактирование, например, вставка/удаление |
Автор(ы): | ДЖАЯДЕВАН Сиддхартх (US), УИЛЛЬЯМС Энтони Скотт (US), ФЛИНН Джеймс Р. (US), ВОСС Флориан (US), БЛОУШ Энтони Кристофер (US) |
Патентообладатель(и): | МАЙКРОСОФТ КОРПОРЕЙШН (US) |
Приоритеты: |
подача заявки:
2008-10-07 публикация патента:
10.04.2013 |
Изобретение относится к способам редактирования и представления файлов. Технический результат заключается в уменьшении времени редактирования множества файлов. Генерируют вид множества файлов, ассоциированных с множеством различных типов данных, для представления на типовом средстве просмотра, причем файлы и типы данных имеют взаимосвязи, заданные в соответствующей схеме, причем схема хранится в качестве данных в хранилище с типами данных, причем типы данных включают в себя множество различных расширений, при этом по меньшей мере один из типов данных является индивидуализировано определяемым пользователем типом данных. Принимают запрос редакции, предназначенный для изменения одного или нескольких выбранных файлов, причем каждый файл имеет соответствующий тип данных. Запрашивают хранилище для определения одного или нескольких свойств выбранных файлов, соответствующих принятому запросу редакции, включая тип данных каждого из выбранных файлов. Определяют на основе схемы, что редакция верна для этого типа данных и файла, на основе информации о взаимосвязях, хранящейся в схеме. Передают информацию удостоверенной редакции на типовое средство просмотра для представления, причем типовое средство просмотра динамически определяет, как представлять выбранные файлы и типы данных, согласно формату представления, предназначенному для файлов и типов данных, как указано схемой, заранее не зная, как манипулировать выбранными файлами и соответствующими типами данных. 3 н. и 12 з.п. ф-лы, 7 ил.
Формула изобретения
1. Реализуемый в компьютерной системе, содержащей по меньшей мере один процессор, способ редактирования одного или нескольких типов файлов, каковые типы не известны до осуществления редактирования, содержащий:
этап, на котором посредством процессора генерируют вид множества файлов, ассоциированных с множеством различных типов данных, для представления на типовом средстве просмотра, причем файлы и типы данных имеют взаимосвязи, заданные в соответствующей схеме, причем схема хранится в качестве данных в хранилище с типами данных, причем типы данных включают в себя множество различных расширений, при этом по меньшей мере один из типов данных является индивидуализировано определяемым пользователем типом данных;
этап, на котором принимают запрос редакции, предназначенный для изменения одного или нескольких выбранных файлов, причем каждый файл имеет соответствующий тип данных;
этап, на котором запрашивают хранилище для определения одного или нескольких свойств выбранных файлов, соответствующих принятому запросу редакции, включая тип данных каждого из выбранных файлов;
этап, на котором определяют на основе схемы, что редакция верна для этого типа данных и файла, на основе информации о взаимосвязях, хранящейся в схеме; и
этап, на котором передают информацию удостоверенной редакции на типовое средство просмотра для представления, причем типовое средство просмотра динамически определяет, как представлять выбранные файлы и типы данных, согласно формату представления, предназначенному для файлов и типов данных, как указано схемой, заранее не зная, как манипулировать выбранными файлами и соответствующими типами данных.
2. Способ по п.1, дополнительно содержащий этап, на котором передают список всех типов данных, доступных в хранилище.
3. Способ по п.1, в котором вид основан на части типа данных.
4. Способ по п.1, дополнительно содержащий этап, на котором просматривают выбранные файлы.
5. Способ по п.1, в котором схема включает в себя подсказки, которые описывают, как представлять файлы на основе схемы.
6. Способ по п.1, в котором файлы являются локализуемыми на одном или нескольких языках.
7. Способ по п.1, в котором по меньшей мере один из определяемых пользователем типов данных включает в себя один или более соответствующих дополнительных типов данных.
8. Способ по п.7, дополнительно содержащий этап, на котором автоматически обновляют схему при обнаружении нового типа данных, определенного пользователем.
9. Способ по п.1, дополнительно содержащий этап, на котором обращаются к схеме для получения информации о взаимосвязях, соответствующей файлам одного или нескольких типов данных.
10. Способ по п.1, в котором файлы включают в себя два или более из следующего: текстовые файлы, файлы презентаций, файлы электронных таблиц, графические файлы, аудиофайлы, файлы кинофильмов, файлы Web-страниц, файлы текстовых редакторов, файлы изображений, списки контактов, диаграммы, задания и события.
11. Способ по п.1, в котором расширения включают в себя два или более из следующего: .ppt, .doc, .xls, .html, .txt, .mov, .wma, .jpgf, .gif, .jpeg, .mp2,.mp3 и.mp4.
12. Способ, реализуемый в компьютерной системе, включающей в себя процессор, который сконфигурирован обрабатывать машиноисполняемые команды для осуществления данного способа, и предназначенный для обеспечения подсказок в схеме, указывающих, как следует отображать файл, содержащий:
этап, на котором генерируют вид множества файлов, ассоциированных с множеством различных типов данных, для представления на типовом средстве просмотра, причем файлы и типы данных имеют взаимосвязи, заданные в соответствующей схеме, при этом схема хранится в качестве данных в хранилище с типами данных, причем типы данных включают в себя множество различных расширений, при этом по меньшей мере один из типов данных является индивидуализировано определяемым пользователем типом данных;
этап, на котором принимают пользовательский ввод, указывающий действие, подлежащее применению к по меньшей мере одному выбранному файлу определенного типа данных;
этап, на котором обращаются к одной или более подсказкам, хранящимся в хранилище, для определения того, какое действие производить над файлом, на основе пользовательского ввода, причем подсказки описывают, какие действия нужно предпринимать, когда пользователь обеспечивает определенные заранее заданные вводы для определенных типов файлов;
этап, на котором осуществляют упомянутое определенное действие согласно подсказкам, соответствующим пользовательскому вводу; и
этап, на котором представляют результаты выполненного действия на типовом средстве просмотра, при этом типовое средство просмотра динамически определяет, как представлять выбранные файлы и типы данных, согласно формату представления, предназначенному для файлов и типов данных, как указано схемой, заранее не зная, как манипулировать выбранными файлами и соответствующими типами данных.
13. Способ по п.12, в котором пользовательский ввод содержит жесты мышью, клавиатурные жесты или комбинацию жестов мышью и клавиатурных жестов.
14. Способ по п.12, в котором подсказки используются для выбора свойств отображения.
15. Реализуемый в компьютерной системе, содержащей по меньшей мере один процессор, способ представления одного или более типов файлов, каковые типы не известны до генерирования вида, содержащий:
этап, на котором посредством процессора принимают указание того, что заданная порция данных должна быть представлена на типовом средстве просмотра, причем данные имеют соответствующий тип данных, при этом по меньшей мере один из типов данных является индивидуализировано определяемым пользователем типом данных, причем данные и типы данных имеют взаимосвязи, заданные в соответствующей схеме, при этом схема хранится в качестве данных в хранилище с типами данных;
этап, на котором динамически запрашивают схему, чтобы определить, как упомянутая порция данных должна быть представлена в типовом средстве просмотра, на основе типа данных;
этап, на котором представляют вид упомянутой порции данных в типовом средстве просмотра, причем типовое средство просмотра динамически определяет, как представлять выбранные данные и типы данных, согласно формату представления, предназначенному для данных и типов данных, как указано схемой, при этом типовое средство просмотра не имеет ни заранее определенного соответствия типов данных, ни какого-либо предварительного знания о том, как манипулировать выбранными данными и соответствующими типами данных.
Описание изобретения к патенту
Предшествующий уровень техники
Компьютеры получили широкое распространение на рабочих местах, в домах и в мобильных устройствах. Компьютеры могут быстро и эффективно обрабатывать большие объемы информации. Прикладные программы, предназначенные для выполнения в компьютерных системах, позволяют пользователям осуществлять разнообразные функции и включают в себя приложения для бизнеса, обучения, развлечения и пр. Прикладные программы часто создаются для решения конкретных задач, например, приложения текстового редактора - для создания документов, или почтовые программы - для отправки, получения и организации электронной почты.
В ряде случаев, прикладные программы можно использовать для генерации, редактирования и отображения данных в форме моделей. Например, модели могут использоваться предприятиями и другими субъектами для описания процессов, систем, сущностей и другой информации. Некоторые модели могут называться схемами последовательности операций, схемами обработки, логическими блок-схемами, схемами процесса и/или контрольными картами. Другие могут называться списками, таблицами, секторными диаграммами, или другими формами категоризации и отображения данных. В ряде случаев, модели можно использовать для иллюстрации организационных соотношений между элементами системы. Эти модели часто называются организационными картами. В более широком смысле, модели можно использовать для демонстрации информации соотношения любого типа между разными объектами.
Однако, неоднократно, программы, предназначенные для генерации, отображения и редактирования данных, ограничиваются типом данных. Например, программы часто бывают жестко закодированы для генерации, редактирования или навигации применительно к определенным типам данных и никаким другим. Кроме того, категоризация и отображение данных могут ограничиваться определенными конфигурациями или формами отображения на основании типа данных. Таким образом, компьютерно-выполняемые прикладные программы, используемые для генерации, просмотра, редактирования или навигации в отношении моделей, наборов данных или другой информации, могут опираться на тип данных для определения того, какие функции будут доступны конечному пользователю.
Сущность изобретения
Описанные здесь варианты осуществления относятся к инфраструктурам для редактирования и представления данных. В одном варианте осуществления, компьютерная система осуществляет способ редактирования одной или нескольких сущностей, типы которых потенциально не известны до осуществления редактирования. Например, компьютерная система генерирует вид сущностей, связанный с сущностями изменяющихся типов данных, для представления на типовом средстве просмотра. Сущности и типы данных имеют соотношения, заданные в соответствующей схеме. Схема хранится в качестве данных в хранилище с типами данных. Компьютерная система принимает запрос редакции, предназначенный для изменения различных выбранных сущностей, причем каждая сущность имеет соответствующий тип данных. Компьютерная система запрашивает хранилище для определения различных свойств выбранных сущностей, соответствующих принятому запросу редакции, включающему в себя тип данных. Компьютерная система определяет, на основании схемы, что редакция верна, на основании информации соотношения, хранящейся в схеме. Компьютерная система также передает информацию удостоверенной редакции на типовое средство просмотра для представления. Типовое средство просмотра заранее не знает, как манипулировать выбранными сущностями и соответствующими типами данных.
В другом варианте осуществления, компьютерная система осуществляет способ навигации между сущностями изменяющихся типов данных. Например, компьютерная система генерирует вид сущностей, связанный с сущностями изменяющихся типов данных, для представления на типовом средстве просмотра. Сущности и типы данных имеют соотношения, заданные в соответствующей схеме. Схема хранится в качестве данных в хранилище с типами данных. Компьютерная система принимает навигационный ввод, указывающий выбор второй выбранной сущности, связанной со вторым, другим типом данных. Компьютерная система обращается к информации соотношения для типов данных, связанных с первой и второй выбранными сущностями. Компьютерная система генерирует обновленный вид, включающий в себя первую выбранную сущность и вторую выбранную сущность, причем обновленный вид основан на полученной информации соотношения. Компьютерная система также представляет сгенерированный обновленный вид на основании навигационного ввода.
В другом варианте осуществления, компьютерная система осуществляет способ обеспечения подсказок в схеме, указывающих, как следует отображать сущность. Например, компьютерная система генерирует вид сущностей, связанный с сущностями изменяющихся типов данных, для представления на типовом средстве просмотра. Сущности и типы данных имеют соотношения, заданные в соответствующей схеме. Схема хранится в качестве данных в хранилище с типами данных. Компьютерная система принимает пользовательский ввод, указывающий действие, подлежащее применению к, по меньшей мере, одной сущности. Компьютерная система обращается к подсказкам, хранящимся в хранилище, для определения того, какое действие производить над сущностью, на основании пользовательского ввода. Подсказки описывают, какие действия нужно предпринимать, когда пользователь обеспечивает определенные заранее заданные вводы. Компьютерная система также осуществляет определенное действие согласно подсказкам, соответствующим пользовательскому вводу.
В другом варианте осуществления, компьютерная система осуществляет способ отображения комбинации двух или более составных видов на основании различных сущностей. Например, компьютерная система генерирует первый вид различных сущностей, связанный с сущностями различных типов данных, для представления на типовом средстве просмотра. Сущности и типы данных имеют различные соотношения, заданные в соответствующей схеме. Схема хранится в качестве данных в хранилище с типами данных. Компьютерная система генерирует второй вид различных сущностей, связанный с сущностями различных типов данных, для представления на типовом средстве просмотра. Компьютерная система принимает пользовательский ввод, указывающий, что первый и второй виды подлежат объединению. Компьютерная система объединяет первый и второй виды согласно пользовательскому вводу. Компьютерная система также обновляет сущности, связанные с сущностями первого вида и второго вида согласно соответствующей схеме каждой сущности.
Это краткое описание сущности изобретения предназначено для ознакомления с рядом концепций, представленных в упрощенной форме, которые дополнительно раскрыты ниже в подробном описании. Это краткое изложение сущности изобретения не призвано ни выявлять ключевые признаки или существенные признаки заявленного изобретения, ни помогать в определении объема заявленного изобретения.
Краткое описание чертежей
Для дополнительного пояснения вышеописанных и других преимуществ и признаков вариантов осуществления настоящего изобретения, более конкретное описание вариантов осуществления настоящего изобретения будет представлено со ссылкой на прилагаемые чертежи. Очевидно, что эти чертежи изображают лишь типичные варианты осуществления изобретения и, таким образом, не призваны ограничивать его объем. Изобретение будет описано и объяснено с дополнительной степенью конкретизации и детализации с использованием прилагаемых чертежей, в которых:
фиг.1 - архитектура компьютера, в которой могут работать варианты осуществления настоящего изобретения, включающие в себя редактирование, навигацию и манипулирование информационной модели изменяющихся типов данных;
фиг.2 - логическая блок-схема иллюстративного способа редактирования одной или нескольких сущностей, типы которых не известны до осуществления редактирования;
фиг.3 - логическая блок-схема иллюстративного способа навигации между сущностями изменяющихся типов данных;
фиг.4 - логическая блок-схема иллюстративного способа обеспечения подсказок в схеме, указывающих, как следует отображать сущность;
фиг.5 - логическая блок-схема иллюстративного способа отображения комбинации двух или более составных видов на основании одной или нескольких сущностей;
фиг.6 - вариант осуществления настоящего изобретения, позволяющий осуществлять отображение и навигацию информации.
Подробное описание
Описанные здесь варианты осуществления относятся к системам для редактирования и представления данных. В одном варианте осуществления, компьютерная система осуществляет способ редактирования одной или нескольких сущностей, типы которых не известны до осуществления редактирования. Например, компьютерная система генерирует вид сущностей, связанный с сущностями изменяющихся типов данных, для представления на типовом средстве просмотра. Сущности и типы данных имеют соотношения, заданные в соответствующей схеме. Схема хранится в качестве данных в хранилище с типами данных. Компьютерная система принимает запрос редакции, предназначенный для изменения одной или нескольких из выбранных сущностей, причем каждая сущность имеет соответствующий тип данных. Компьютерная система запрашивает хранилище для определения различных свойств выбранных сущностей, соответствующих принятому запросу редакции, включающему в себя тип данных. Компьютерная система определяет, на основании схемы, что редакция верна, на основании информации соотношения, хранящейся в схеме. Компьютерная система также передает информацию удостоверенной редакции на типовое средство просмотра для представления. Типовое средство просмотра заранее не знает, как манипулировать выбранными сущностями и соответствующими типами данных.
В другом варианте осуществления, компьютерная система осуществляет способ навигации между сущностями изменяющихся типов данных. Например, компьютерная система генерирует вид сущностей, связанный с сущностями изменяющихся типов данных, для представления на типовом средстве просмотра. Сущности и типы данных имеют соотношения, заданные в соответствующей схеме. Схема хранится в качестве данных в хранилище с типами данных. Компьютерная система принимает навигационный ввод, указывающий выбор второй выбранной сущности, связанной со вторым, другим типом данных. Компьютерная система осуществляет доступ к информации соотношения для типов данных, связанных с первой и второй выбранными сущностями. Компьютерная система генерирует обновленный вид, включающий в себя первую выбранную сущность и вторую выбранную сущность, причем обновленный вид основан на информации соотношения, к которой осуществлен доступ. Компьютерная система также представляет сгенерированный обновленный вид на основании навигационного ввода.
В другом варианте осуществления, компьютерная система осуществляет способ обеспечения подсказок в схеме, указывающих, как следует отображать сущность. Например, компьютерная система генерирует вид сущностей, связанный с сущностями изменяющихся типов данных, для представления на типовом средстве просмотра. Сущности и типы данных имеют соотношения, заданные в соответствующей схеме. Схема хранится в качестве данных в хранилище с типами данных. Компьютерная система принимает пользовательский ввод, указывающий действие, подлежащее применению к, по меньшей мере, одной сущности. Компьютерная система обращается к подсказкам, хранящимся в хранилище, для определения того, какое действие производить над сущностью, на основании пользовательского ввода. Система использует подсказки для определения того, какие действия нужно предпринимать, когда пользователь обеспечивает определенные заранее заданные вводы. Компьютерная система также осуществляет определенное действие согласно подсказкам, соответствующим пользовательскому вводу.
В другом варианте осуществления, компьютерная система осуществляет способ отображения комбинации двух или более составных видов на основании различных сущностей. Например, компьютерная система генерирует первый вид различных сущностей, связанный с сущностями различных типов данных, для представления на типовом средстве просмотра. Сущности и типы данных имеют различные соотношения, заданные в соответствующей схеме. Схема хранится в качестве данных в хранилище с типами данных. Компьютерная система генерирует второй вид различных сущностей, связанный с сущностями различных типов данных, для представления на типовом средстве просмотра. Компьютерная система принимает пользовательский ввод, указывающий, что первый и второй виды подлежат объединению. Компьютерная система объединяет первый и второй виды согласно пользовательскому вводу. Компьютерная система также обновляет сущности, связанные с сущностями первого вида и второго вида согласно соответствующей схеме каждой сущности.
Варианты осуществления настоящего изобретения могут содержать компьютер специального назначения или общего назначения, включающий в себя компьютерное оборудование, более подробно рассмотренное ниже. Варианты осуществления в объеме настоящего изобретения также включают в себя физические и другие компьютерно-считываемые носители для переноса или хранения компьютерно-выполняемых инструкций и/или структур данных. Такие компьютерно-считываемые носители могут представлять собой любые доступные носители, к которым может обращаться компьютерная система общего назначения или специального назначения. Компьютерно-считываемые носители, где хранятся компьютерно-выполняемые инструкции, являются физическими носителями данных. Компьютерно-считываемые носители, которые переносят компьютерно-выполняемые инструкции, являются средами передачи данных. Таким образом, в порядке примера, но не ограничения, варианты осуществления изобретения могут содержать, по меньшей мере, две существенно различающиеся разновидности компьютерно-считываемых носителей: физические носители данных и среды передачи данных.
Физические носители данных включают в себя ОЗУ, ПЗУ, ЭСППЗУ, CD-ROM или другое оптическое дисковое запоминающее устройство, магнитное дисковое запоминающее устройство, или любой другой носитель, который можно использовать для хранения желаемого средства программного кода в виде компьютерно-выполняемых инструкций или структур данных и к которому может обращаться компьютер общего назначения или специального назначения.
Сеть определяется как одна или несколько линий передачи данных, которые способны передавать данные в электронном виде между компьютерными системами и/или модулями и/или другими электронными устройствами. Когда информация переносится или предоставляется по сети или другому коммуникационному соединению (проводному, беспроводному или комбинированному) на компьютер, компьютер, по существу, видит соединение как среду связи. Среды передачи данных могут включать в себя сеть и/или линии передачи данных, которые можно использовать для переноса или передачи желаемого средства программного кода в виде компьютерно-выполняемых инструкций или структур данных, и к которому может обращаться компьютер общего назначения или специального назначения. Комбинации вышеприведенных примеров также подлежат включению в понятие компьютерно-считываемых носителей.
Однако следует понимать, что, по достижении различных компонентов компьютерной системы, средство программного кода в виде компьютерно-выполняемых инструкций или структур данных может автоматически переноситься из сред передачи данных на физические носители данных. Например, компьютерно-выполняемые инструкции или структуры данных, принятые по сети или линии передачи данных, могут буферизоваться в ОЗУ карты сетевого интерфейса и затем окончательно переноситься в ОЗУ компьютерной системы и/или на менее энергозависимые физические носители данных в компьютерной системе. Таким образом, следует понимать, что физические носители данных можно отнести к компонентам компьютерной системы, которые также (или даже в основном) используют среды передачи данных.
Компьютерно-выполняемые инструкции содержат, например, инструкции и данные, которые предписывают компьютеру общего назначения, компьютеру специального назначения или устройству обработки специального назначения осуществлять определенную функцию или группу функций. Компьютерно-выполняемые инструкции могут представлять собой, например, двоичные коды, инструкции в промежуточном формате, например, написанные на языке ассемблера, или даже исходный код. Хотя изобретение было описано в отношении структурных признаков и/или этапов способа, следует понимать, что изобретение, заданное в формуле изобретения, не ограничивается конкретными признаками или этапами, описанными выше. Напротив, конкретные признаки или этапы, описанные выше, раскрыты в качестве примеров реализации формулы изобретения.
Специалистам в данной области техники очевидно, что изобретение можно осуществлять на практике в сетевых вычислительных окружениях, содержащих конфигурации компьютерной системы различных типов, включая персональные компьютеры, настольные компьютеры, портативные компьютеры, процессоры сообщений, карманные устройства, многопроцессорные системы, бытовые электронные приборы на основе микропроцессора или с возможностью программирования, сетевые ПК, миникомпьютеры, универсальные компьютеры, мобильные телефоны, КПК, пейджеры, маршрутизаторы, коммутаторы и пр. Изобретение также можно осуществлять на практике в распределенных вычислительных окружениях, где задания выполняются локальными и удаленными устройствами обработки, которые связаны друг с другом (проводными, беспроводными или комбинированными линиями связи) через сеть связи. В распределенном вычислительном окружении программные модули могут размещаться на локальных и удаленных запоминающих устройствах.
На фиг.1 показана архитектура 100 компьютера, в которой можно реализовать принципы настоящего изобретения. Архитектура 100 компьютера включает в себя компьютерную систему 101. В некоторых вариантах осуществления, компьютерная система 101 может включать в себя системную память 155 и процессор 156. Как объяснено выше, память 155 может представлять собой компьютерную память любого типа, включая ОЗУ, ПЗУ, полупроводниковое, магнитное или другое запоминающее устройство. Аналогично, процессор 156 может представлять собой процессор любого типа, микроконтроллер, конечный автомат или другое средство обработки информации и/или управления функциями компьютерной системы.
Компьютерная система 101 также может включать в себя средство просмотра 110. Средство просмотра 110 может представлять собой программное или аппаратное средство любого типа, способное принимать и отображать электронный сигнал. Например, средство просмотра 110 может быть способно принимать вид 111 или обновленный вид 112 и отображать вид для пользователя. Средство просмотра 110 также может быть способно принимать вводы извне компьютерной системы 101, например пользовательский ввод 106 от пользователя 105. В некоторых вариантах осуществления, средство просмотра 110 может быть способно обрабатывать и отображать данные, принятые в промежуточной канонической форме. Пользователем 105 может быть пользователь компьютера любого типа, в том числе разработчик, конечный пользователь или пользователь любого другого типа. Пользовательский ввод 106 может представлять собой ввод любого типа, включающий в себя вводы через мышь, клавиатуру или другое периферийное устройство, жесты, регистрируемые сенсорным экраном, камерой или другим устройством, движения, комбинации клавиш или другие вводы. Средство просмотра 110 может принимать пользовательский ввод 106 от пользователя 105 и передавать пользовательский ввод 106 на подсистему 115 потока данных.
В некоторых вариантах осуществления, подсистема потока данных управляет зависимостями между сущностями и данными. Например, подсистема 115 потока данных может управлять зависимостями 116 между сущностями 120 и элементам данных 130 в хранилище 125. Зависимости могут представлять собой соотношения любого рода, которые могут существовать между сущностями, схемами, типами данных или другими элементами данных. Зависимости могут отслеживать, какие результаты запросов зависят от определенных элементов данных, что позволяет повторно оценивать запросы при изменении элемента данных. Подсистема 115 потока данных также может быть приспособлена для преобразования информации из промежуточной канонической формы в форму, которая может отображаться средством просмотра 110. Подсистема 115 потока данных может принимать каноническую информацию от сущностей 120 в форме запросов 117 и/или редакций 118, что будет объяснено ниже.
Хранилище 125 может представлять собой любое средство хранения информации, например файл, базу данных, регистр универсального описания, поиска и взаимодействия (UDDI), каталог облегченного протокола службы каталогов (LDAP) или любую другую форму базы данных или набор баз данных, и может храниться в хранилище данных любого типа, включая жесткий диск, сетевой диск, флэш-память, оптический или другой тип хранилища. В некоторых вариантах осуществления, любое из средства просмотра 110, подсистемы 115 потока данных или сущностей 120 может быть способно считывать и/или записывать информацию из/в хранилище 125. Такая операция чтения и/или записи может осуществляться напрямую (без участия каких-либо других модулей) или косвенно, посредством различных модулей, показанных (или не показанных) на фиг.1. Сущности 120 могут включать в себя сущность любого типа. Для простоты, в качестве сущностей 120 показаны только «личности» 120A, «задания» 120B и «события» 120C. Однако очевидно, что любой элемент, который может быть связан с данными, может являться сущностью в используемом здесь смысле. В ряде случаев, сущности 120 являются каноническими представлениями элементов данных 130, хранящихся в хранилище 125.
Подсистема потока данных может сообщаться с сущностями 120 и/или хранилищем 125 с использованием запросов 117 и/или редакций 118. Например, подсистема 115 потока данных может направлять запрос сущностям 120 для определения сущности, подлежащей выбору. Запрос 117 может дополнительно указывать, что информацию нужно считывать или записывать из/в хранилище 125. Аналогично, хранилище 125 может направлять запрос (например, запрос 117) подсистеме 116 потока данных для получения зависимости или другой информации. Подсистема 115 потока данных может передавать предлагаемые редакции 118 сущностям 120 и/или в хранилище 125. В ряде случаев, сущности 120 и элементы данных 130 являются редактируемыми, по отдельности или совместно. Кроме того, хранилище 125 может передавать предлагаемую редакцию 118 на подсистему 115 потока данных для удостоверения. Удостоверение редакции будет более подробно объяснено ниже, со ссылкой на фиг.2.
Вид 111 и обновленный вид 112 могут включать в себя представление данных любого типа. Например, вид 111 может включать в себя списки, диаграммы, графики, электронные таблицы, web-страницы, документы текстового редактора, слайды, изображения, окна приложений или любой другой способ форматирования и/или представления информации. Обновленный вид 112 может включать в себя любой из вышеописанных примеров, включающий в себя изменения, добавления, удаления, замены или другие модификации, выполненные в отношении вида. В ряде случаев, когда вид 111 не был изменен, или принял информацию, которая обуславливает изменение в части вида, которая в данный момент не наблюдается, вид 111 и обновленный вид 112 могут быть идентичными. В случаях, когда была принята информация, которая обуславливает изменение в части вида, которая в данный момент не наблюдается, и когда часть вида затем перемещается в вид, обновленный вид 112 можно обновлять оперативно, что позволяет избежать любой ненужной обработки.
На фиг.2 показана логическая блок-схема способа 200 редактирования одной или нескольких сущностей, типы которых не известны до осуществления редактирования. Способ 200 будет описан применительно к компонентам и данным окружения 100.
Способ 200 включает в себя этап, на котором генерируют вид одной или нескольких сущностей, связанных с одним или несколькими типами данных, для представления на типовом средстве просмотра, причем сущности и типы данных имеют соотношения, заданные в соответствующей схеме, причем схема хранится в качестве данных в хранилище с типами данных (этап 210). Например, средство просмотра 110 может генерировать вид 111 сущностей 120 (например, сущностей 120A-120C), связанных с одним или несколькими типами данных 130B, для представления на средстве просмотра 110, причем сущности 120 и типы данных 130B имеют соотношения 130D, заданные в соответствующей схеме 130A, причем схема 130A хранится в качестве данных в хранилище 125 с типами данных 130B. В альтернативных вариантах осуществления, другие модули, например подсистема 115 потока данных, могут генерировать вид 111.
В ряде случаев, вид 111 может быть основан на участке типа данных. Например, вид 111 может быть основан на имени из типа данных «полное имя» (например, Джон из Джон Доу ). Типы данных 130B могут включать в себя любой классификатор типа данных, включающий в себя форматы данных, конфигурации, расширения файлов, типы файлов, классификации именования, организационные классификации и пр. В ряде случаев, типы данных 130B могут задаваться и/или выбираться пользователем компьютера. Например, пользователь может задать тип данных Адрес предприятия , который позволяет вводить определенные данные и может включать в себя дополнительные типы данных, например Улица , Почтовый индекс , Город и Штат . Как упомянуто выше, типы данных может указывать тип файла, например Изображение , Фильм или Электронная таблица . Другие типы данных могут указывать расширения файлов, например .jpg , .mpeg или .xls . В некоторых вариантах осуществления, вид может быть основан на комбинации других типов данных. Кроме того, схема может автоматически обновляться при обнаружении нового типа данных, заданного пользователем.
Схема 130A может указывать определенные правила и/или соотношения между сущностями 120 и типами данных 130B. Например, схема 130 может указывать, что определенные сущности, например Личности 120A, имеют тип данных Полное имя . Схема 130A может также указывать, что с каждой сущностью «Личности» связана сущность «Задания». Таким образом, в некоторых вариантах осуществления, когда пользователь 105 редактирует данные в сущности «Личности» 120A, данные из Задания 120B также могут быть доступны для редактирования. Кроме того, если какие-либо типы данных перекрываются или появляются в обеих сущностях 120A и 120B, обновление таких данных в одной сущности может автоматически обновлять соответствующие данные в другой сущности. Очевидно, что возможны разнообразные комбинации сущности и соотношений и вышеприведенный пример не следует использовать для ограничения использования схем, типов данных, сущностей, соотношений или любой другой концепции, используемой в порядке примера.
Как указано выше, схема 130 может храниться в качестве данных в хранилище 125, аналогично хранению других типов данных. В ряде случаев, схема 130 может редактироваться пользователем 105. Например, пользователь 105 может вводить пользовательский ввод 106, который может использоваться подсистемой 115 потока данных для запрашивания и/или редактирования элементов данных в хранилище 125. Любая информация в схеме 130A либо вся схема, или группа схем может редактироваться пользователем 105. Пользователь может добавлять подсказки, которые описывают, как представлять сущности на основании схемы. Например, пользователь 106 может добавить в схему 130A подсказку, которая указывает, как представлять сущность «События» 120C, если определенные другие сущности уже отображаются, или если сущность 120C отображается самостоятельно. Многие другие свойства или правила можно модифицировать путем изменения данных схемы. В ряде случаев, сущности могут быть локализуемыми на одном или нескольких языках.
Способ 200 включает в себя этап, на котором принимают запрос редакции, предназначенный для изменения одной или нескольких из выбранных сущностей, причем каждая сущность имеет соответствующий тип данных (этап 220). Например, средство просмотра 110 может принимать пользовательский ввод 106, который включает в себя запрос редакции, предназначенный для изменения сущностей 120, причем каждая сущность имеет соответствующий тип данных (например, типы данных 130B). Подсистема 115 потока данных может обрабатывать пользовательский ввод 106 до перенаправления ввода 106 на сущности 120 и хранилище 125 в форме запроса 117 или редакции 118. Дополнительно или альтернативно, подсистема 115 потока данных может просто перенаправлять пользовательский ввод 106 на сущности 120 и/или хранилище 125, не обрабатывая его. Запрос 117 может, в некоторых вариантах осуществления, включать в себя запрос сущностей, выбранных пользователем 105 в пользовательском вводе 106. Редакция 118 может, в некоторых вариантах осуществления, включать в себя обработанный запрос, который включает в себя предусмотренные редакции и/или указание, что редакция верна, на основании зависимостей 116.
Способ 200 включает в себя этап, на котором запрашивают хранилище для определения одного или нескольких свойств выбранных сущностей, соответствующих принятому запросу редакции, включающему в себя тип данных (этап 230). Например, запрос 117 можно использовать для запрашивания хранилища 125 для определения свойств сущностей, выбранных пользователем, соответствующих принятому запросу редакции в пользовательском вводе 106, включающему в себя тип данных 130B.
Способ 200 также включает в себя этап, на котором определяют на основании схемы, что редакция верна, на основании информации соотношения, хранящейся в схеме (этап 240). Например, компьютерная система 101 может определить на основании схемы 130 и информации 130D соотношения, что редакция 118 верна. Пользователь 105 может указывать в пользовательском вводе 106, что сущность «Задания» нужно редактировать. В частности, ввод 106 может указывать, что типы данных Дата подлежат переводу из формата год/месяц/число в формат число/месяц/год . Если схема указывает, что какой-либо формат допустим для этого типа данных, редакция может быть объявлена верной. Если же пользовательский ввод 106 указывает, что типы данных Дата подлежат изменению от год/месяц/число к полное имя , указанная редакция может быть объявлена неверной, поскольку схема не допускает тип данных полное имя . Схемы 130A и информация 130D соотношения может указывать любой тип информации, который подлежит или не подлежит представлению в определенной сущности, и может дополнительно указывать типы данных или любую другую информацию, которая подлежит или не подлежит представлению в сущности на основании схемы 130A. В ряде случаев, редакцию можно удостоверять до приема запроса редакции. Такая конфигурация может позволять пользователю разрешать/запрещать определенные команды, строить меню команд удостоверения или выбирать другие признаки системы.
Способ 200 также включает в себя этап, на котором передают информацию удостоверенной редакции на типовое средство просмотра для представления, причем типовое средство просмотра заранее не знает, как манипулировать выбранными сущностями и соответствующими типами данных (этап 250). Например, либо хранилище 125, либо сущности 120 может/могут передавать информацию удостоверенной редакции в редакциях 118 на средство просмотра 110 для представления. Типовое средство просмотра 110 может заранее не знать, как манипулировать выбранными сущностями 120 и соответствующими типами данных 130B.
Таким образом, средство просмотра 110, без какого-либо предварительного указания на счет того, как представлять определенную сущность или определенный тип данных, может обращаться к схеме, соответствующей сущности, и определять то, как представлять сущность. Например, если средство просмотра 110 никогда не представляло сущность «События» с типом данных Конференции , заданным пользователем, средство просмотра 110 может обратиться к схеме 130A для определения того, как представлять информацию. Такое обращение к схеме является динамическим и может осуществляться каждый раз, когда нужно представлять сущность. В ряде случаев, пользователь может просматривать выбранные сущности либо по отдельности, либо как часть сгенерированного вида на основании информации удостоверенной редакции. Например, пользователь может по своему выбору просматривать выбранные сущности, прежде чем редактировать их. В других случаях, пользователь может пожелать просмотреть сущности после осуществления редактирования. В прочих случаях, пользователь может просматривать редакции по мере их выполнения.
В некоторых вариантах осуществления, компьютерная система 101 может осуществлять необязательный этап, на котором передают список всех типов данных, доступных в хранилище. Это может быть полезно в случаях, когда пользователь 105 желает знать обо всех типах данных 130B, доступных в хранилище 125.
На фиг.3 показана логическая блок-схема способа 300 навигации между сущностями изменяющихся типов данных. Способ 300 будет описан применительно к компонентам и данным окружений, описанных на фиг.1, 6A и 6B.
Способ 300 включает в себя этап, на котором генерируют вид первой выбранной сущности, связанной с первым типом данных, для представления на типовом средстве просмотра, причем сущности и типы данных имеют соотношения, заданные в соответствующей схеме, причем схема хранится в качестве данных в хранилище с типами данных (этап 310). Например, средство просмотра 110 может генерировать вид секторной диаграммы 605A, связанной с типом данных Имя . Сущности, соответствующие именам Джо, Франк, Билл, Майк и других, указаны в 605A. Эти сущности могут иметь соотношения, заданные в схеме 130A, причем схема хранится в качестве данных в хранилище 125 с типами данных 130B (например, Имя ). Вид 605A может представлять все имена в хранилище или их часть. Например, вид 605A может представлять имена участников конференции.
Способ 300 включает в себя этап, на котором принимают навигационный ввод, указывающий выбор второй выбранной сущности, связанной со вторым, другим типом данных (этап 320). Например, компьютерная система 101 может принимать ввод 610A выбора пользователя (который может быть идентичен или отличен от пользовательского ввода 106) от пользователя 105. Ввод 610A выбора пользователя может указывать выбор другого типа данных или сущности с другим типом данных. Например, пользователь может по своему выбору просматривать секторную диаграмму всех конференций, хранящихся в хранилище 125, или их части. В результате, вид 615A может отображаться для демонстрации сущностей с типом данных Конференция (в этом примере, конф. A, конф. B, конф. C, конф. D и конф. E). Таким образом, пользователь осуществляет навигацию от одного вида к другому. В ряде случаев, сущности с другими типами данных выявляются через соотношение с первой выбранной сущностью. Например, в вышеприведенном примере, вид 605A может отображать имена участников любой из конференций A-E. Таким образом, когда пользователь выбирает имя, данные, связанные с конференцией, могут дополнительно привязываться к каждому имени пользователя.
В ряде случаев, компьютерная система 101 может быть приспособлена принимать совокупность навигационных вводов, указывающих выбор совокупности выбранных сущностей, связанных с совокупностью типов данных. Например, множественные вводы 610A выбора пользователя могут указывать выбор сущностей с типами данных Имя , Возраст , Место работы и Адрес электронной почты . В этом примере, средство просмотра 110 может быть способно отображать каждую сущность по одной, группы сущностей, или все сущности одновременно, независимо от типа данных. Каждая сущность может отображаться на основании ее соотношения с другими сущностями.
Способ 300 включает в себя этап, на котором обращаются к информации соотношения для типов данных, связанных с первой и второй выбранными сущностями (этап 330). Например, компьютерная система 101 может обращаться к информации 130D соотношения на предмет типов данных 130B, связанных с первой и второй выбранными сущностями Джо и конф. A . Как объяснено выше, сущности, например Джо и конф. A , могут совместно использовать некоторый тип соотношения, в котором Джо может быть участником конф. A.
Способ 300 включает в себя этап, на котором генерируют обновленный вид, включающий в себя первую выбранную сущность и вторую выбранную сущность, причем обновленный вид основан на полученной информации соотношения (этап 340). Например, компьютерная система 101 может генерировать обновленный вид 112 (который может быть идентичным или не идентичным виду 615A), включающий в себя первую выбранную сущность (например, Джо ) и вторую выбранную сущность (например, конф. A ), причем обновленный вид 112 основан на информации 130D соотношения. Информация 130D соотношения может представлять собой информацию любого типа, часть схемы 130A или иную информацию, которую можно использовать для связывания сущностей изменяющихся типов данных.
Способ 300 также включает в себя этап, на котором представляют сгенерированный обновленный вид на основании навигационного ввода (этап 350). Например, сгенерированный обновленный вид 112 можно представлять на средстве просмотра 110, причем вид генерируется в результате приема ввода выбора пользователя. Пользователь может просматривать выбранные сущности либо по отдельности, либо как часть сгенерированного обновленного вида. Например, пользователь может по своему выбору просматривать выбранные сущности, прежде чем редактировать их. В других случаях, пользователь может пожелать просмотреть сущности после осуществления редактирования. В прочих случаях, пользователь может просматривать редакции по мере их выполнения. В альтернативных вариантах осуществления, ссылку на сгенерированный обновленный вид 112 можно представлять так, чтобы сгенерированный обновленный вид можно было представлять в другом окне приложения. Ссылка может представлять собой гиперссылку или ссылку другого типа, которая позволяет открывать весь вид или его часть в другом окне приложения.
На фиг.4 показана логическая блок-схема способа 400 обеспечения подсказок в схеме, указывающих, как следует отображать сущность. Способ 400 будет описан применительно к компонентам и данным среды 100.
Способ 400 включает в себя этап, на котором генерируют вид одной или нескольких сущностей, связанных с одним или несколькими типами данных, для представления на типовом средстве просмотра, причем сущности и типы данных имеют различные соотношения, заданные в соответствующей схеме, причем схема хранится в качестве данных в хранилище с типами данных (этап 410). Например, средство просмотра 110 может генерировать вид 111 сущностей 120 (например, сущностей 120A-120C), связанных с одним или несколькими типами данных 130B, для представления на средстве просмотра 110, причем сущности 120 и типы данных 130B имеют соотношения 130D, заданные в соответствующей схеме 130A, причем схема 130A хранится в качестве данных в хранилище 125 с типами данных 130B. В альтернативных вариантах осуществления, другие модули, например подсистема 115 потока данных, может генерировать вид 111.
Способ 400 включает в себя этап, на котором принимают пользовательский ввод, указывающий действие, подлежащее применению к, по меньшей мере, одной сущности (этап 420). Например, средство просмотра 110 может принимать пользовательский ввод 106, указывающий действие, подлежащее применению к сущности «Личности» 120A. Заметим, что любое надлежащее действие может быть указано пользовательским вводом 106. Например, действие, подлежащее применению, может включать в себя создание, чтение, обновление, удаление, редактирование, перемещение, дублирование или любое другое действие. Пользовательский ввод 106 может включать в себя жесты мышью, клавиатурные жесты или комбинацию жестов мышью и клавиатурных жестов. Например, определенные нажатия клавиш или определенные клики мышью можно интерпретировать как удаление, обновление или другие жесты. Жесты мышью могут включать в себя двойной клик, перетаскивание, наведение и все остальные формы связи посредством мыши. Другие устройства, например камеры и сенсорные экраны, также можно использовать для ввода жестов. Интерпретация жестов и/или отображение жестов в команды может осуществляться вручную пользователем или автоматически программой. Пользователь 105 может самостоятельно настраивать отображения жестов в команды.
Способ 400 включает в себя этап, на котором обращаются к одной или нескольким подсказкам, хранящимся в хранилище, для определения того, какое действие производить над сущностью, на основании пользовательского ввода, причем подсказки описывают, какие действия нужно предпринимать, когда пользователь обеспечивает определенные заранее заданные вводы (этап 430). Например, подсистема 115 потока данных может обращаться к подсказкам 130C, хранящимся в хранилище 125, для определения того, какое действие производить над сущностью (например Личности ), на основании пользовательского ввода 106. Подсказки 130C могут описывать, какие действия нужно предпринимать, когда пользователь обеспечивает определенный жест. Например, подсказки 130C могут предписывать, что когда пользовательский ввод 106 включает в себя двойной клик по сущности, сущность подлежит дублированию. Другие подсказки могут указывать, что в случае двойного клика по сущности сущность становится доступной для редактирования. Подсказки 130C могут связывать любой жест с любым фрагментом функциональности, который можно использовать в отношении сущности. Подсказки можно, дополнительно или альтернативно, использовать, чтобы пользователь мог выбирать свойства сущности. Например, подсказки могут указывать, что в случае приема определенных жестов можно выбирать и/или изменять конфигурацию сущности, форму, цвет или другие свойства. В ряде случаев, подсказки можно использовать для построения вида до приема пользовательского ввода 106.
Способ 400 включает в себя этап, на котором осуществляют определенное действие согласно подсказкам, соответствующим пользовательскому вводу (этап 440). Например, компьютерная система 101 может осуществлять определенное действие согласно подсказкам 130C, соответствующим пользовательскому вводу 106. Как объяснено выше, пользовательский ввод 106 может включать в себя жесты. Жесты могут отображаться в необходимые действия над выбранной сущностью. В хранилище 125 могут храниться подсказки 130C, которые можно использовать полностью, или в дополнение к схеме 130A для определения того, какое действие производить, на основании принятого жеста.
На фиг.5 показана логическая блок-схема способа 500 отображения комбинации двух или более составных видов на основании одной или нескольких сущностей. Способ 500 будет описан применительно к компонентам и данным окружений, описанных на фиг.1, 6A и 6B.
Способ 500 включает в себя этап, на котором генерируют первый вид одной или нескольких сущностей, связанных с одним или несколькими типами данных, для представления на типовом средстве просмотра, причем сущности и типы данных имеют различные соотношения, заданные в соответствующей схеме, причем схема хранится в качестве данных в хранилище с типами данных (этап 510). Например, как объяснено в отношении способа 300, средство просмотра 110 может генерировать вид секторной диаграммы 605B, связанной с типом данных Имя . Сущности, соответствующие именам Джо, Франк, Билл, Майк и других, указаны в 605B. Эти сущности могут иметь соотношения, заданные в схеме 130A, причем схема хранится в качестве данных в хранилище 125 с типами данных 130B (например, Имя ). Вид 605B может представлять все имена в хранилище или их часть. Например, вид 605B может представлять имена участников конференции.
Способ 500 включает в себя необязательный этап, на котором генерируют второй вид одной или нескольких других сущностей, связанных с одним или несколькими типами данных, для представления на типовом средстве просмотра (этап 520). Например, аналогично этапу 510, средство просмотра 110 может генерировать диаграмму или другой вид, связанный с выбранным типом данных, указанным во вводе 610B выбора пользователя. Второй вид может отображаться или не отображаться на средство просмотра 110, или, по меньшей мере, определенные участки второго вида могут отображаться или не отображаться. То, отображать ли второй вид, может определять пользователь. В ряде случаев, пользователь может пожелать создать гибрид двух или более видов. Гибрид - это комбинация или объединение одного или нескольких элементов множественных разных видов. Например, пользователь может пожелать объединить элемент A из одного вида, элемент B из одного вида и элемент C из другого и объединить их в один вид. Это будет более подробно объяснено ниже.
Способ 500 включает в себя этап, на котором принимают пользовательский ввод, указывающий, что первый и второй виды подлежат объединению (этап 530). Например, компьютерная система 101 может принимать ввод выбора пользователя 610B, указывающий что первый и второй виды подлежат объединению. В ряде случаев, объединение предполагает, что последующие действия пользователя (например, выбор) в одном виде приведут к изменению в другом виде. В одном примере, первый вид может демонстрировать диаграмму имен, хранящихся в хранилище 125. Второй вид (не показан) может включать в себя диаграмму доступных конференций (например, Конференций A-E). Пользователь 105 может выбрать конференцию A, и объединение двух видов может привести к объединению 620B. Объединение 620B изображает вид секторной диаграммы имен участников конференции A. Такое объединение можно назвать гибридом вида имен в хранилище 125 и доступных конференций, хранящихся в хранилище 125. Возможны многие другие примеры. Как можно видеть в объединении 630B, если пользователь желает выбрать имя участника (например, Джо ) и название конференции ( конф. A ), диаграмма может демонстрировать перечень пользователей, участвующих в конф. A, по имени Джо. Возможны и другие соотношения и диаграммы имя/конференция. Кроме того, заметим, что можно использовать модель или диаграмму любого типа, а также любой тип данных. Вышеприведенные примеры носят исключительно иллюстративный характер и представляют лишь некоторые из многих возможных вариантов осуществления.
Способ 500 включает в себя этап, на котором объединяют первый и второй виды согласно пользовательскому вводу (этап 540). Например, компьютерная система 101 может объединять первый и второй виды согласно пользовательскому вводу 610B. Объединение двух или более видов может быть основано на том, как пользователь хочет представлять данные и какие части каждого вида использовать в полном объединении. В некоторых вариантах осуществления, способ объединения двух видов может определяться тем, какие жесты пользователь использовал во вводе 610B. Например, если пользователь перетащил мышью первый вид на второй вид, объединение может включать в себя перезаписывание любых элементов первого вида, перекрывающихся с элементами из второго, но с сохранением любых уникальных элементов первого вида. Аналогично вышеприведенным примерам, их не следует использовать для ограничения возможных типов объединения.
Способ 500 также включает в себя этап, на котором обновляют сущности первого вида и второго вида согласно соответствующей схеме каждой сущности (этап 550). Например, сущности Джо и конф. A , используемые в вышеприведенных примерах, можно обновлять согласно соответствующей схеме каждой сущности. Схема может устанавливать соотношения с другими сущностями, которые нужно поддерживать при обновлении сущностей. В некоторых вариантах осуществления, к схеме можно обращаться для получения информации соотношения, соответствующей сущностям, которая может определять, как осуществлять обновления. В ряде случаев, обновление вида может происходить автоматически после выбора второго вида.
Таким образом, были представлены варианты осуществления для редактирования, навигации и манипулирования информационной модели изменяющихся типов данных. Сущности изменяющихся типов данных можно редактировать, заранее не зная тип данных. Навигацию по сущностям изменяющихся типов данных на основании соотношения между сущностями. В схеме можно обеспечивать подсказки для указания, как следует отображать сущность. Также, комбинации двух или более составных видов можно отображать на основании ввода выбора пользователя.
Настоящее изобретение можно реализовать в других конкретных формах, не отходя от его сущности или основных характеристик. Описанные варианты осуществления также рассматриваются во всех отношениях лишь как иллюстративные, но не ограничительные. Таким образом, объем изобретения определяется нижеследующей формулой изобретения, а не вышеприведенным описанием. Все изменения, согласующиеся с формулой изобретения и ее эквивалентами, подлежат включению в ее объем.
Класс G06F17/24 редактирование, например, вставка/удаление