ИНТЕЛЛЕКТУАЛЬНОЕ РЕДАКТИРОВАНИЕ РЕЛЯЦИОННЫХ МОДЕЛЕЙ
INTELLIGENT EDITING OF RELATIONAL MODELS

УРОВЕНЬ ТЕХНИКИ
Компьютеры стали важным инструментом в работе, в быту и широко используются в мобильных устройствах. Компьютеры могут быстро и эффективно обрабатывать огромное количество информации. Программные приложения, предназначенные для работы в компьютерных системах, позволяют пользователям выполнять множество функций, включая приложения, рассчитанные на коммерческую деятельность, обучение, развлечения и т.п. Программные приложения часто предназначаются для выполнения специализированных задач, включая приложения текстового редактора для составления документов или программы электронной почты для отправки, приема или организации электронной почты.
В некоторых случаях программные приложения могут использоваться для создания моделей и их модификации. Например, бизнес и другие объекты могут использовать модели для описания процессов и систем. Модели также могут представлять разные типы информации в различных формах. В некоторых случаях модель может представлять данные в форме технологической схемы. В других случаях модель может представлять данные в форме схем технологического процесса, блок-схем алгоритма, диаграмм технологического процесса и/или схем управления. В других случаях модели используются для иллюстрации структурных взаимосвязей между ресурсами системы. Эти модели часто называются структурными схемами. В широком смысле модели могут использоваться для того, чтобы показать все типы информации о взаимосвязи различных объектов.
Обычно модели имеют связанные схемы, которые описывают терминологию, используемую в модели. Схема действует как некоторые условные обозначения, позволяющие пользователю или программному приложению обращаться к схеме для определения подразумеваемого значения термина или символа, используемого в модели. Некоторые схемы могут включать в себя теги, задаваемые пользователем (например, теги расширяемого языка разметки (XML)), а также метаданные, которые соответствуют различным элементам модели. Метаданные могут использоваться для описания свойств объекта, включая вид и функции объекта, его компоновку и даже его контент. Таким образом, программные приложения, выполняемые компьютером, могут быть использованы для создания моделей и их модификации.
СУЩНОСТЬ ИЗОБРЕТЕНИЯ
Описанные здесь варианты осуществления направлены на проверку допустимости редактирования, которое должно быть выполнено для целевого объекта в модели, и предложение одного или нескольких вариантов допустимого редактирования. В одном варианте осуществления компьютерная система выполняет способ проверки допустимости редактирования, которое должно быть выполнено, по меньшей мере, для одного целевого объекта в модели. Компьютерная система принимает от пользователя ”жест”, указывающий редактирование, которое должно быть выполнено для целевого объекта в модели. Модель основывается на базовой схеме, включающей в себя ограничения, которые определяют взаимосвязи между объектами в модели, включая целевой объект. Компьютерная система определяет, что, по меньшей мере, одно из ограничений в базовой схеме связано с указанным редактированием целевого объекта. Основываясь на этом определении, компьютерная система определяет, что редактирование допустимо. Допустимое редактирование действует в соответствии с ограничениями, связанными с указанным редактированием целевого объекта.
В другом варианте осуществления компьютерная система предлагает варианты допустимых способов редактирования модели на основе указанного ”жеста” пользователя, соответствующего объекту модели. Компьютерная система принимает от пользователя ”жест”, указывающий на редактирование, которое должно выполняться для целевого объекта в модели. Модель основывается на базовой схеме, содержащей одно или несколько ограничений, которые определяют взаимосвязи между объектами. Компьютерная система определяет, что, по меньшей мере, одно из ограничений в базовой схеме связано с указанным редактированием целевого объекта. Наконец, компьютерная система предоставляет пользователю компьютера указание на допустимое редактирование модели.
Данное изложение сущности изобретения позволяет ознакомиться в доступной форме с выбором концепций, которые затем будут описаны ниже в Подробном описании. Данное изложение сущности изобретения не претендует на установление ключевых признаков или существенных признаков заявленного изобретения, а также не предназначено в качестве средства для определения объема заявленного изобретения.
КРАТКОЕ ОПИСАНИЕ ЧЕРТЕЖЕЙ
Для облегчения понимания вышеизложенных и других преимуществ и признаков вариантов осуществления настоящего изобретения далее будет представлено более конкретное описание вариантов осуществления настоящего изобретения с использованием прилагаемых чертежей. Следует принимать во внимание, что эти чертежи изображают только типовые варианты осуществления изобретения и поэтому не могут рассматриваться как ограничивающие объем изобретения. Изобретение будет описано и раскрыто более конкретно и детально с помощью использования прилагаемых чертежей, на которых:
Фиг.1 иллюстрирует архитектуру компьютера, в которой могут действовать варианты осуществления настоящего изобретения, включая в себя проверку допустимости редактирования, выполненного для модели, и предложение вариантов допустимого редактирования на основе указывающего ”жеста” пользователя.
Фиг.2 иллюстрирует блок-схему примерного способа для проверки допустимости редактирования, которое выполняется, по меньшей мере, для одного целевого объекта в модели.
Фиг.3 иллюстрирует блок-схему примерного способа для предложения вариантов допустимых способов редактирования модели на основе указывающего ”жеста” пользователя, соответствующего объекту модели.
Фиг.4A-4D иллюстрирует вариант осуществления настоящего изобретения, в котором соединения между конечными точками в моделях редактируются на основе ”жестов” пользователя.
ПОДРОБНОЕ ОПИСАНИЕ
Описанные здесь варианты осуществления направлены на проверку допустимости редактирования, которое должно быть выполнено для целевого объектам в модели, и предложение одного или нескольких вариантов допустимого редактирования. В одном варианте осуществления компьютерная система выполняет способ проверки допустимости редактирования, которое должно быть выполнено, по меньшей мере, для одного целевого объекта в модели. Компьютерная система принимает от пользователя ”жест”, указывающий, что будет выполняться редактирование целевого объекта в модели. Модель основывается на базовой схеме, включающей в себя ограничения, которые определяют взаимосвязи между объектами в модели, включающей в себя целевой объект. Компьютерная система определяет, что, по меньшей мере, одно из ограничений в базовой схеме связано с указанным редактированием целевого объекта. Основываясь на этом определении, компьютерная система определяет, что редактирование допустимо. Допустимое редактирование согласуется с ограничениями, связанными с указанным редактированием целевого объекта.
В другом варианте осуществления компьютерная система предлагает варианты допустимых способов редактирования модели на основе указывающего ”жеста” пользователя, соответствующего объекту модели. Компьютерная система принимает от пользователя ”жест”, указывающий на редактирование, которое должно выполняться для целевого объекта в модели. Модель основывается на базовой схеме, содержащей одно или несколько ограничений, которые определяют взаимосвязи между объектами. Компьютерная система определяет, что, по меньшей мере, одно из ограничений в базовой схеме связано с указанным редактированием целевого объекта. Наконец, компьютерная система предоставляет пользователю компьютера указание на допустимое редактирование модели.
Варианты осуществления настоящего изобретения могут содержать или использовать компьютер специализированного или универсального назначения, включающий в себя компьютерные аппаратные средства, которые более детально будут рассмотрены ниже. Варианты осуществления в объеме настоящего изобретения также включают в себя физические и другие машиночитаемые носители для переноса или хранения машиноисполняемых команд и/или структур данных. Такими машиночитаемыми носителями могут быть любые существующие носители, доступные для компьютерной системы универсального или специализированного назначения. Машиночитаемые носители, которые хранят машиноисполняемые команды, - это физические запоминающие носители. Машиночитаемые носители, которые переносят машиноисполняемые команды, - это передающие носители. Таким образом, в качестве примера, но не ограничения, варианты осуществления изобретения могут содержать, по меньшей мере, два различных вида машиночитаемых носителей: физические запоминающие носители и передающие носители.
Физические запоминающие носители включают в себя RAM, ROM, EEPROM, CD-ROM или другие запоминающие устройства на оптических дисках, запоминающие устройства на магнитных дисках, другие магнитные запоминающие устройства или какой-то другой носитель, который можно использовать для хранения нужного программного кода, то есть в форме машиноисполняемых команд или структур данных, и к которому можно получить доступ с помощью универсального компьютера или специализированного компьютера.
Один или несколько каналов передачи данных определяются как ”сеть”, которая позволяет перенос компьютерных данных между компьютерными системами, и/или модулями, и/или другими электронными устройствами. Когда информация передается или предоставляется компьютеру по сети или другой линии связи (либо аппаратные, беспроводные, либо комбинация аппаратных и беспроводных), то компьютер, по сути, видит соединение как передающий носитель. Передающий носитель может включать в себя сеть и/или каналы передачи данных, которые могут быть использованы для переноса или транспортировки нужного программного кода, то есть в форме машиноисполняемых команд или структур данных, и к которому можно получить доступ с помощью универсального компьютера или специализированного компьютера. Комбинации описанных выше носителей должны также быть включены в область машиночитаемых носителей.
Однако следует понимать, что при поступлении кода программы в различные компоненты компьютерной системы в виде машиноисполняемых команд или структур данных они могут передаваться автоматически от передающих носителей к физическим запоминающим носителям. Например, машиноисполняемые команды или структуры данных, принимаемые по сети или каналу передачи данных, могут быть буферизованы в RAM внутри сетевой интерфейсной карты, а затем окончательно переданы в RAM компьютерной системы и/или в менее энергозависимые физические запоминающие носители компьютерной системы. Таким образом, следует понимать, что физические запоминающие носители могут быть включены в компоненты компьютерной системы, которые также (или даже в первую очередь) используют передающие носители.
Машиноисполняемые команды содержат, например, команды и данные, которые заставляют выполнять некоторую функцию или группу функций обрабатывающее устройство компьютера универсального или специализированного назначения. Машиноисполняемые команды, например, могут быть двоичными, командами промежуточного формата, включая язык ассемблера или даже исходный код. Хотя изобретение было описано на языке, характерном для структурных признаков и/или методологических этапов, следует понимать, что изобретение, определенное в прилагаемой формуле, необязательно ограничивается описываемыми признаками или этапами, описанными выше. Скорее, признаки и этапы, описанные выше, раскрыты как формы примера для реализации формулы изобретения.
Фиг.1 иллюстрирует архитектуру 100 компьютера, к которой могли бы быть применены принципы настоящего изобретения. Архитектура 100 компьютера включает в себя компьютерную систему 101. В некоторых вариантах осуществления компьютерная система 101 может включать в себя системную память 155 и процессор 156. Как объяснено выше, память 155 может быть любым типом компьютерной памяти, включающей в себя RAM, ROM, твердотелую, магнитную или другую память. Аналогично, процессор 156 может быть любым типом процессора, микроконтроллером, конечным автоматом или другим устройством обработки информации и/или устройством, реализующим функции управления компьютерной системы.
Компьютерная система 101 может включать в себя принимающий ”жест” модуль 110. В некоторых вариантах осуществления принимающий ”жест” модуль 110 может быть сконфигурирован для приема ”жеста” 106 пользователя от пользователя 105. Пользователь 105 может быть любым пользователем компьютера, способным взаимодействовать с компьютерной системой. ”Жест” 106 пользователя может быть любым типом ввода, который способен интерпретировать компьютерная система. Например, ”жест” пользователя может включать в себя щелчки мышью, вводы с клавиатуры, приемы ”перетащить и оставить” и приемы ”нажать и потянуть”, наведения мыши, сенсорный ввод через сенсорный экран или любой тип движения пользователя или объекта, которое зафиксировано камерой или видеомагнитофоном. Принимающий ”жест” модуль 110 может быть сконфигурирован для приема и интерпретации ”жеста” 106 пользователя в качестве команды. Например, если пользователь вводит ”жест” ”перетащить и оставить”, то принимающий ”жест” модуль 110 может интерпретировать этот ”жест” как команду выбора элемента и переместить элемент на позицию, где элемент будет ”оставлен”. Конечно, возможны многие другие комбинации ”жест”/команда. Дополнительно или в качестве альтернативы пользователь 105 может определить, как некоторые ”жесты” могут быть интерпретированы принимающим ”жест” модулем 110.
Результатом интерпретированного ”жеста” является указанное редактирование 111. Например, если пользователь вводит ”жест” 106, то принимающий ”жест” модуль 110 может интерпретировать ”жест” как некоторую команду. Эта команда может обозначать редактирование, которое должно быть выполнено для объекта (например, указанное редактирование 111). Например, в некоторых случаях компьютерная система 101 сконфигурирована для редактирования моделей. Модель как термин, используемый здесь, может включать в себя любой тип инфраструктуры или структуры, которая позволяет предоставлять пользователю информацию. Такая инфраструктура может быть использована для организации информации. Например, модели могут быть использованы для иллюстрации организационных взаимосвязей между ресурсами в системе. Это часто называется организационной схемой или орг. схемой. Орг. схемы часто представляют информацию как иерархическую структуру сверху вниз. Модели также используются для того, чтобы показать схемы технологического процесса. Такие модели часто называют технологическими схемами, схемами технологического процесса, блок-схемами алгоритма, диаграммами технологического процесса или схемами управления. Эти модели показывают различные пути, которыми процесс может идти к завершению. Могут быть использованы другие модели, отображаемые в различных формах, с некоторыми типами информации о взаимосвязи, связывающей различные типы информации.
В некоторых случаях модели используют схемы для определения взаимосвязей между другими частями информации, представленными моделью. Например, орг. схема может начинаться с поля ”Президент” и заканчиваться полем ”Неполный рабочий день ”, где каждое промежуточное поле связано с другими полями. Например, поле ”Президент” может быть связано с полем ”Вицепрезидент”, которое может быть связано с полем ”Менеджер 1 уровня”, которое может быть связано с полем ”Неполный рабочий день ”. Каждая из связей может быть определена как взаимосвязь, и каждая взаимосвязь может быть сохранена как ограничение в схеме для этой модели. Схема может перейти к определению типов информации, которые могут быть включены в каждое поле. Например, тег поля ”Президент” может быть использован в схеме для обозначения информации, связанной с президентом компании. Тег поля ”Президент” допускает другую информацию, чем допускает тег поля ”Неполный рабочий день”. Такая информация, как имя, адрес, биография, резюме, членство в советах и т.д., все это может быть доступно президенту, тогда как сотруднику неполного рабочего дня доступно меньшее количество информации.
Этот пример использования схемы и ограничений для определения информации и взаимосвязей между информационными полями - только один пример из многих возможных применений моделей, схем и ограничений. Возможны многие другие варианты. Представленный здесь пример иллюстрирует взаимоотношение между моделями, схемами и ограничениями.
Как объяснено выше, принимающий ”жест” модуль 110 может принимать ”жест” 106 пользователя, интерпретировать ”жест” как команду, используемую в редактировании модели, и выводить указанное редактирование 111. Указанное редактирование 111 может включать в себя любой тип команды, способной редактировать элемент. Например, указанное редактирование 111 может включать в себя вырезание, копирование, вставку, окрашивание, изменение формы, начертание линии, перемещение, перекомпоновку, пересоединение, удаление, добавление или любую другую команду, предназначенную для изменения объекта, включающего в себя модель. В некоторых вариантах осуществления модель 140 основана на базовой схеме 135 и соответствующих ограничениях 137. В таких случаях базовая схема 135 и/или ограничения 137 могут включать в себя пределы, при которых можно проводить редактирование в модели 140. Таким образом, валидатор 120 редактирования может быть сконфигурирован для проверки допустимости указанного редактирования 111 с помощью сопоставления указанного редактирования с пределами схемы 135 и ограничениями 137.
Например, в некоторых случаях пользователь 105 может пожелать редактировать модель 140 на основе схемы 135 и ограничений 137. В других случаях пользователь 105 может пожелать создать модель, основанную на выбранной схеме и соответствующих ограничениях. В некоторых случаях пользователь 105 может выбрать базовую схему 135 и соответствующие ограничения 137 из группы базовых схем 136, где каждая схема имеет соответствующие ограничения. В других случаях пользователь может выбрать модель для редактирования из группы моделей 141. В этих случаях выбранная модель будет иметь соответствующую схему и ограничения из группы базовых схем 136. Таким образом, выбирает ли пользователь 105 модель или только схему, модуль 125 ассоциации ограничения может принимать модель и/или схему и определять, связываются ли любые соответствующие ограничения с указанным редактированием 111.
Модуль 125 ассоциации ограничения может быть сконфигурирован так, чтобы определить, связано ли условие с указанным редактированием одним из множества способов. Например, пользователь 105 может перетащить объект на другой объект с намерением, что объекты будут соединены линией, обозначающей, что объекты имеют какой-то тип взаимосвязи. Модуль 125 ассоциации ограничения может идентифицировать два объекта и получить доступ к ограничениям, чтобы определить, позволяют ли ограничения этим двум объектам изображаться соединенными и иметь какой-то тип взаимосвязи. Ассоциация ограничения и определение допустимости редактирования будут детально объяснены ниже.
Валидатор 120 редактирования может быть сконфигурирован таким образом, чтобы осуществить связь с выполняющим редактирование модулем 130. В некоторых вариантах осуществления выполняющий редактирование модуль 130 выполняет указанное редактирование, если валидатор 120 редактирования признал редактирование допустимым. Следует заметить, что редактирование, признанное недопустимым, может быть сохранено в памяти и даже представлено пользователю с пометками, идентифицирующими недопустимое редактирование. В отдельных случаях желательно предоставить пользователю 105 подсказку о вариантах редактирования, которые разрешены на основе ограничений 137. Таким образом, даже там, где валидатор 120 редактирования определил, что указанное редактирование является допустимым (например, определение допустимости 122), валидатор 120 может также включать в себя одну или несколько подсказок, указывающих на другие разрешенные варианты редактирования. Таким образом, валидатор 120 редактирования может иметь на выходе набор определений: допустимости с подсказкой (121), допустимости (122), недопустимости с подсказкой (123), недопустимости (124). Таким образом, в случаях предоставления подсказки пользователь 105 может дать указание выполняющему редактирование модулю 130 провести представленное редактирование в дополнение или взамен указанного редактирования. Таким образом, выполняющий редактирование модуль 130 редактирует и/или создает модель на базе одного или нескольких указанных и/или представленных вариантов редактирования, что приводит к отредактированной модели 145. В некоторых случаях комбинация из валидатора 120 редактирования, модуля 125 ассоциации ограничения и выполняющего редактирование модуля 130 именуется редактором 115.
Фиг.2 иллюстрирует блок-схему способа 200 для проверки допустимости редактирования, выполненного, по меньшей мере, для одного целевого объекта в модели. Фиг.4А-4D показывают примеры модели, редактируемой на основе ”жеста” пользователя. Способ 200 будет описан с многократными ссылками на компоненты и данные оборудования 100 и примеры редактирования модели на Фиг.4А-4D.
Способ 200 включает в себя этап приема от пользователя ”жеста”, который указывает, что будет выполняться редактирование, по меньшей мере, для одного целевого объекта в модели; такой модели, которая основывается на базовой схеме, включающей в себя одно или несколько ограничений, которые определяют взаимосвязи между объектами в модели, включающей в себя целевой объект (этап 210). Например, принимающий ”жест” модуль 110 может принимать ”жест” 106 пользователя, указывающий, что будет проводиться указанное редактирование 111, по меньшей мере, одного целевого объекта в модели 140; модель 140, основывающаяся на базовой схеме 135 и соответствующих ограничениях 137, которые определяют взаимосвязи между объектами в модели 140, включающей в себя целевой объект. Как упоминалось выше, принимающий ”жест” модуль 110 может принимать любой тип ”жеста” пользователя от пользователя 105. В некоторых случаях модуль 110 сконфигурирован для интерпретации ”жестов” и выявления указанного ”жестом” редактирования.
Например, такие ”жесты”, как двойной щелчок мышью целевого объекта или прием ”перетащить и оставить” целевой объект на другом объекте, могут указывать на отличающиеся способы редактирования. В некоторых вариантах осуществления двойной щелчок на целевом объекте может автоматически дублировать целевой объект, создавая новый идентичный объект. Использование приема ”перетащить и оставить” целевой объект на другом объекте, с другой стороны, может указывать, что целевой объект соединен с другим объектом линией или другим видом соединения. Как можно предполагать, каждый из этих и других ”жестов” может быть интерпретирован по отдельности другими способами на основе типовой конфигурации принимающего ”жест” модуля 110 или на основе выбираемой пользователем конфигурации модуля 110.
Способ 200 также включает в себя этап, определяющий, что, по меньшей мере, одно ограничение в базовой схеме связано с указанным редактированием 111 целевого объекта (этап 220). Например, модуль 125 ассоциации ограничения может определить, что, по меньшей мере, одно из ограничений 137, соответствующее базовой схеме 135, связано с указанным редактированием 111 целевого объекта. В некоторых вариантах осуществления объект 431А модели на Фиг.4А может быть целевым объектом. Например, Фиг.4А показывает ”жест” 401А, где пользователь (например, пользователь 105) начертил линию 405А между выбранным объектом 430А и объектом 431А, в данном случае целевым объектом.
Каждый объект модели может иметь конечные точки, отображающие положения на объекте, где могли бы располагаться соединения. Соединения 425A-D соединяют объекты с другими объектами. В некоторых случаях соединения отображают взаимосвязи между объектами, как определено базовой схемой модели и соответствующими ограничениями. Таким образом, как показано на Фиг.4А-4D, несовпадающие конечные точки 415А-D представляют части объекта, которые не могут быть соединены с выбранным объектом, а совпадающие конечные точки 410А-D представляют части объекта, которые могут быть соединены с целевым объектом; это разрешенное соединение основывается на ограничениях модели.
Таким образом, как показано на Фиг.4А, пользователь может ввести ”жест”, начертив линию 405А между объектами 430А и 431А. Этот ”жест” примет модуль 110, принимающий ”жест”, и определит, что ”жест” указывает на то, что два объекта должны быть соединены соединением (например, соединением 425А). Модуль 125 ассоциации ограничения может определить, что указанное редактирование соединения двух объектов соединением через совпадающие конечные точки 410А разрешено ограничениями 137. Таким образом, результат 420А показывает, что объекты 430А и 431А соединены при помощи соединения 425A через совпадающие конечные точки 410А.
И наконец, способ 200 включает в себя, основываясь на определении, что, по меньшей мере, одно из ограничений в базовой схеме связано с указанным редактированием целевого объекта, этап определения, что редактирование допустимо; это допустимое редактирование, удовлетворяющее, по меньшей мере, одному ограничению, связанному с указанным редактированием целевого объекта (этап 230). Например, на основе определения модуля 125 ассоциации ограничения, что, по меньшей мере, одно из ограничений 137 базовой схемы 135 связано с указанным редактированием 111 для объекта 431А, валидатор 120 редактирования может определить, что указанное редактирование 111 допустимо, потому что редактирование удовлетворяет, по меньшей мере, одному из ограничений 137, связанному с указанным редактированием 111 для объекта 431А. Таким образом, в вышеприведенном примере указанное редактирование изображения соединения между совпадающими точками 410А может быть выполнено выполняющим редактирование модулем 130, потому что ограничения 137 указывают, что между совпадающими конечными точками 410А существует взаимосвязь, и потому что ”жест” пользователя определен как (допустимое определение 122) допустимый для модели (дополнительный этап 240). Конечные точки, соответствующие, по меньшей мере, одному ограничению базовой схемы, могут подсвечиваться на дисплее пользователя. В некоторых вариантах осуществления модель 140 может быть выведена на дисплей, отредактирована и/или создана в приложении визуального моделирования.
Фиг.3 иллюстрирует блок-схему способа 300 для предложения одного или нескольких вариантов допустимого редактирования модели, основанных на указывающем ”жесте” пользователя в соответствии с объектом модели. Способ 300 будет описан с многократными ссылками на компоненты и данные оборудования 100 и примеры редактирования модели на Фиг.4А-4D.
Способ 300 включает в себя этап приема от пользователя ”жеста”, указывающего, что будет выполняться редактирование, по меньшей мере, одного целевого объекта в модели, которая основывается на базовой схеме, содержащей одно или несколько ограничений, которые определяют взаимосвязи между объектами (этап 310). Например, принимающий ”жест” модуль 110 может принимать ”жест” 106 пользователя и указывать, что будет проводиться указанное редактирование 111, по меньшей мере, одного целевого объекта (например, объекта 431В) в модели 140; модели 140, основывающейся на базовой схеме 135, включающей в себя ограничения 137, которые определяют взаимосвязи между объектами в модели.
Способ 300 также включает в себя этап, определяющий, что, по меньшей мере, одно из ограничений в базовой схеме связано с указанным редактированием целевого объекта (этап 320). Например, модуль 125 ассоциации ограничения может определить, что, по меньшей мере, одно из ограничений 137 в базовой схеме 135 связано с указанным редактированием 111 целевого объекта. Таким образом, оценивают ограничения в базовой доменной модели, соответствующей выбранному объекту и/или целевому объекту. Валидатор 120 редактирования определяет допустимость указанного редактирования 111 на основе оценки ограничений, в частности определяет, распространено ли какое-либо из ограничений модели на указанное редактирование 111.
Способ 300 дополнительно может включать в себя, основываясь на определении, что, по меньшей мере, одно из ограничений в базовой схеме связано с указанным редактированием целевого объекта, этап определения на основе ограничений, связанных с указанным редактированием, которое следует провести для целевого объекта, что редактирование модели, соответствующее ”жесту” пользователя, недопустимо (дополнительный этап 330). Например, основываясь на определении, что, по меньшей мере, одно из ограничений 137 базовой схемы 135 связано с указанным редактированием 111 для целевого объекта (например, 431В), валидатор 120 редактирования может определить, основываясь на ограничениях 137, связанных с указанным редактированием 111, которое следует провести для целевого редактирования, что указанное редактирование 111, соответствующее ”жесту” пользователя, недопустимо.
Указанное редактирование 111 может быть объявлено недопустимым по разнообразным причинам (недопустимое определение 124). Например, выбранный объект (например, объект 430В) может не иметь совпадающих с целевым объектом (например, объект 431В) конечных точек, как показано на Фиг.4В. Более того, ограничения 137 могут указывать, что взаимосвязь между выбранным объектом 430В и 431В не разрешена или не должна быть разрешена. Например, модель может включать в себя технологическую схему с несколькими стадиями, каждая из которых должна быть завершена последовательно. Пользователь может ввести ”жест”, указывающий на выбор первого технологического блока и указание, что первый блок соединен с третьим технологическим блоком соединением (например, пользователь ”перетащил” первый блок на третий блок). В этом случае модуль ассоциации ограничения определил бы, что имеются ограничения, связанные с редактированием, и валидатор редактирования вернул бы определение недопустимости, основанное на ограничениях. Следует заметить, что это только один пример недопустимого редактирования, определенного по ограничениям и базовой схеме модели, и что возможны много других отличающихся и более сложных примеров.
И наконец, способ 300 включает в себя, основываясь на определении недопустимости, этап предоставления пользователю компьютера указания, по меньшей мере, на одно допустимое редактирование модели (этап 340). Например, валидатор 120 редактирования, основываясь на определении недопустимости 124, может предоставить пользователю 105 компьютера указания, по меньшей мере, на одно допустимое редактирование модели (например, подсказки 121 и 123). Как показано на Фиг.4В, пользователь может ввести ”жест” 401В, начерченную пользователем линию 405В между выбранным объектом 430В и целевым объектом 431В. В этом случае конечные точки не представлены, потому что потенциальные взаимосвязи между двумя объектами не определены. После приема указанного редактирования 111, основанного на ”жесте” 401В, валидатор редактирования может предоставить указание, основываясь на ограничениях 137, что эти два объекта могут быть соединены и, дополнительно, какие части этих объектов следует соединить. Таким образом, в результате 420В совпадающие конечные точки 410В и 411В соединены при помощи соединения 425В, где конечная точка 411В сформирована на основе ограничений, относящихся к объектам 430В и 431В.
В некоторых случаях валидатор 120 редактирования может предоставить на основании указанного редактирования 111 подсказку или указание на допустимое редактирование модели, даже если редактирование определено как допустимое. Таким образом, валидатор 120 редактирования может послать четыре разных определения выполняющему редактирование модулю 130: допустимости с подсказкой 121, допустимости 122, недопустимости с подсказкой 123 и недопустимости 124. В некоторых случаях валидатор 120 редактирования может предоставить некоторое количество допустимых вариантов редактирования модели в ответ на указанное редактирование 111 и в соответствии с ограничениями базовой схемы.
Как показано на Фиг.4С, модель может иметь многочисленные объекты с многочисленными конечными точками. В некоторых вариантах осуществления по ”жесту” 401С пользователь может ”перетащить” выбранный объект 430С модели в группу объектов 435С модели, находящуюся в оконтуренной области, и оставить его где-либо в этой области (”жест” ”перетащить и оставить” 406С). Валидатор редактирования может делать определения на основе ограничений для каждого объекта каждой модели (в случаях, когда представлено более одной модели) как возможные совпадения конечной точки. Таким образом, в результате 420С совпадающие конечные точки 410С соединены через соединение 425С, а несовпадающие конечные точки 415С не соединены. В некоторых случаях, где имеется более одного совпадения конечной точки согласно ее соответствующим ограничениям, пользователю может быть выдана подсказка в виде окна с вариантом выбора подсоединения к одному ли прямоугольнику, к выбранным ли прямоугольникам или ко всем совпадающим прямоугольникам. Более того, в некоторых вариантах осуществления объекты, которые не имеют совпадающих с выбранным объектом 430С конечных точек, игнорируются или иным способом перемещаются из поля зрения, позволяя, таким образом, пользователю сконцентрироваться на объектах, связанных с выбранным объектом 430С.
На Фиг.4D показан другой сценарий действий по ”жесту” 401D, в котором пользователь выбирает выбранный объект 430D, ”перетаскивает” его, ”оставляет” его на свободном месте в программе редактирования визуальной модели. В некоторых вариантах осуществления пользователь 105 выбирает конечную точку, которая совпадает (например, 412D) с другими точками в одном или нескольких других объектах (например, моделях). Набор 450D шаблонов объекта с совпадающими конечными точками может быть выведен на экран для пользователя, позволяя пользователю сделать выбор из шаблонов объекта, которые имеют конечные точки, соответствующие конечной точке 412, в зависимости от ограничений базовой схемы каждого объекта. Таким образом, в этом примере пользователь может выбрать из шаблонов 451D, 452D и 453D объекта, каждый из которых имеет, по меньшей мере, одну совпадающую конечную точку. Как показано в результате 420D, пользователь 105 может выбрать шаблон объекта 453D, совпадающие конечные точки которого (например, совпадающие конечные точки 410D) соединены при помощи соединения 425D. Несовпадающие конечные точки 415D объектов не соединены. По аналогии со сценарием, описанным выше, пользователь дополнительно может выбрать множество объектов, которые имеют совпадающие конечные точки. Более того, пользователь может выполнять ”жесты”, указывающие, что на выбранных объектах могут выполняться другие варианты редактирования. Эти ”жесты” будут аналогично обработаны и выполнены, если будут определены как допустимые на основе ограничений в базовой схеме(ах).
В некоторых случаях валидатор 120 редактирования предоставляет подсказку, включающую в себя доступное редактирование модели, которое функционально в большой степени аналогично недопустимому редактированию модели. Таким образом, если пользователь попытается модернизировать объект или создать взаимосвязь между двумя объектами, а ”жест” ведет к недопустимому редактированию, то валидатор 120 редактирования может определить другие способы редактирования, которые аналогичны тому, что указаны ”жестом”.
В некоторых вариантах осуществления после определения того, что указанное редактирование 111 недопустимо, выполняющий редактирование модуль 130 может предотвратить выполнение редактирования модели. В дополнение или в качестве альтернативы выполняющий редактирование модуль 130 может создать новый объект модели, соответствующий ограничениям базовой схемы. Пользователь для создания может выбрать тип нового объекта модели. В некоторых вариантах осуществления варианты редактирования модели, выведенные на экран, представлены в виде подсказок, которые могут быть в текстовой форме. В других отображаемые на экране допустимые варианты редактирования модели могут включать в себя наложенные изображения, показывающие результат редактирования на модели. Таким образом, пользователь будет иметь возможность из наложенного изображения определить, выполнять ли или нет редактирование.
Таким образом, пользователь может выполнять ”жесты”, которые указывают на варианты редактирования, осуществляющиеся в одной или нескольких моделях. Допустимость вариантов редактирования может определяться перед их применением на основе ограничений базовой схемы модели(ей), чтобы обеспечить редактирование пользователем модели(ей) в допустимой форме. Более того, там, где пользователь указал недопустимое редактирование, могут быть предложены подсказки таким образом, что пользователь может указать доступные варианты редактирования для выполнения на модели.
Настоящее изобретение можно осуществлять в других конкретных формах без отступления от духа или неотъемлемых характеристик. Описанные варианты осуществления следует рассматривать во всех аспектах только как иллюстрацию, а не ограничение. Поэтому сущность изобретения указана в прилагаемой формуле изобретения, а не в предшествующем описании. Все изменения, которые произойдут в трактовке и равноценных представлениях этой формулы изобретения, должны ограничиваться областью их применения.