ПРЕДПОСЫЛКИ СОЗДАНИЯ ИЗОБРЕТЕНИЯ
В изданиях, отпечатанных промышленным способом, таких как, например, газеты и журналы, в значительной мере используют макеты верстки полос и оформления, основанные на сетке. В 1920-х и в 1940-х годах разработчиками Мондрианом (Mondrian) и Ле Корбюзье (Le Corbusier) были созданы системы макетирования, основанные на упорядоченных сетках, для печати содержимого документов различного типа. Эти системы макетирования, основанные на сетках, были дополнительно усовершенствованы в Швейцарии после Второй мировой войны и в 1950-х и 1960-х годах быстро распространились по всему миру в качестве стандарта для коммерческих изданий. В настоящее время системы макетирования, основанные на сетке, по-прежнему повсеместно реализованы во множестве издательских систем.
Существуют несколько успешных систем программного обеспечения, которые обеспечивают поддержку оформления страниц, основанного на сетке. Такие программные продукты, как, например, MICROSOFT PUBLISHER, выпускаемый фирмой "Microsoft Corporation of Redmond", г.Редмонд, штат Вашингтон (США), QUARKXPRESS®, выпускаемый фирмой Quark, Inc., г.Денвер, штат Колорадо (США), и ADOBE PAGEMAKER®, выпускаемый фирмой Adobe Systems Incorporated, г.Сан-Хосе, штат Калифорния (США), стали отраслевыми стандартами для промышленной печати и для настольных издательских систем. Несмотря на то, что эти системы программного обеспечения соответствуют своему назначению, отображение элементов верстки полосы, таких как, например, текст, изображения и боковые меню, к положениям на сетке в макете документа фактически по-прежнему остается процессом, выполняемым вручную. Как правило, макет документа, основанный на сетке, специально приспособлен для одного конкретного размера страницы, например для листа бумаги размером 8Ѕ на 11 дюймов. Однако отсутствует какой-либо очевидный изящный способ адаптации этих специализированных макетов для страниц различных размеров и для других условий просмотра (что также именуют здесь "переформатированием документа" ("document-reflow")).
Поскольку в макете документа, основанном на сетке, учитывается как статичный фиксированный размер, так и процесс, выполняемый вручную, то системы макетирования, основанные на сетке, обычно не обеспечивают поддержку "переформатирования документа". Системы, которые действительно поддерживают переформатирование содержимого документа, такие как, например, программа "Microsoft Word" и язык гипертекстовой разметки (HTML), обычно рассматривают содержимое документа как одиночный одномерный поток, который переходит с одной страницы к следующей. Таким образом, в системах этого типа может происходить потеря исходного макета документа, основанного на сетке. Такое затруднение также может возникать в системах, в которых используют множество ориентаций с различными форм-факторами.
Сложность обобщения вариантов оформления, основанных на сетке, объясняет, как правило, худшее качество экранных макетов по сравнению с аналогичными макетами в печатном виде. Поскольку значения разрешающей способности экрана дисплеев начинают соответствовать по качеству разрешающей способности печатаной страницы, то возникает потребность в простой и автоматической адаптации вариантов оформления документов, основанных на сетке, к электронным дисплеям произвольного размера. Термин "гармоничная верстка" может использоваться для определения набора правил и ограничений, применяемых для размещения таких объектов, как, например, текст и изображение (но эти примеры не являются ограничивающим признаком), в системе, основанной на сетке, для сохранения соотношения и пропорциональности элементов для обеспечения оптимального просмотра и удобочитаемости динамически агрегированных документов. Это может являться уникальным фактором при разработке и проектировании эффективного высококачественного адаптивного макета. Эта сложность, возможно, является одним из наибольших остающихся препятствий к созданию реализованных на практике возможностей считывания в оперативном режиме, конкурирующих с теми возможностями, которые предоставляет печать типографской краской на бумаге. Реализованные на практике возможности считывания с экрана могут в конечном счете превзойти возможности, предоставляемые при чтении газеты, поскольку компьютеры обеспечивают множество возможностей индивидуальной настройки и стиля, а также такие возможности, как, например, анимация и интерактивность.
Адаптивный макет документа, основанный на сетке, требует гибкого разбиения на страницы для преобразования содержимого документа в набор отдельных страниц. На отдельные страницы могут быть наложены различные ограничения, такие как, например, последовательное упорядочение слов в потоке текста, ограниченный объем страниц и зависимости между информационным содержимым в документе (например, сноски в тексте на чертежи или таблицы). Нахождение желательного разбиения на страницы часто является трудной задачей в том случае, когда информационное содержимое включает в себя один или большее количество дополнительных типов информационного содержимого, например чертежи или таблицы.
Для получения оптимального разбиения на страницы должна быть определена мера того, что результат будет успешным, для каждого из соответствующих наборов отдельных страниц. Разбиение на страницы имеет свойство, именуемое "подзадачей поиска оптимального решения", и, следовательно, она может быть решена способом динамического программирования. Любое оптимальное решение для n страниц, по сути, содержит оптимальное решение для n-1 страниц. Как правило, динамическое программирование средства разбиения на страницы начинают с пустого набора решения и пошаговым способом добавляют подзадачу (например, подмножество отдельных страниц) и решают ее для того, чтобы найти надлежащий набор отдельных страниц. Дополнительно к этому, при динамическом программировании средства разбиения на страницы сохраняют таблицу количественных показателей каждой подзадачи (например, меру того, что результат будет успешным, на основании заранее заданной метрики) и указатель, указывающий назад на предыдущую подзадачу в оптимальном решении. Оценку новой подзадачи производят путем поиска в таблице для предыдущей подзадачи наилучшего количественного показателя, который может должным образом предшествовать новой подзадаче. Соответственно, динамически программируемое средство разбиения на страницы производит оценку каждого из возможных предшественников каждой новой подзадачи. К сожалению, может существовать значительное количество предшественников каждой новой подзадачи, подлежащих оценке, причем подавляющее большинство из них даже не классифицированы как правильные предшественники новой подзадачи. Следовательно, динамически программируемое средство разбиения на страницы неэффективно выполняет оценку непригодных подзадач-предшественников и, следовательно, снижает скорость разбиения на страницы.
Кроме того, в существующей в настоящее время компьютерной среде происходит быстрое распространение устройств и дисплеев, имеющих как различную форму, так и различное отношение ширины изображения к его высоте. Содержимое и информацию подают в малогабаритные дисплеи, носимые на запястье, в портативные карманные устройства, в цифровые коммутирующие матрицы, в рабочие станции и даже в большие настенные дисплеи. В качестве части этой тенденции выяснилось, что персональный компьютер является важным средством для чтения. В настоящее время чтение с экрана фактически стало основной формой сбора информации в нашем обществе.
Однако многие из существующих в настоящее время способов оформления документов для сети "всемирная паутина", или эти устройства с дисплеями, сильно отличающимися друг от друга по размерам и форме, не обеспечивают эффективное использование новой динамической полезной площади, предоставляемой многими видами дисплеев. Большинство форматов, предназначенных для сети "всемирная паутина", не обеспечивают хорошее функционирование на составных дисплеях. Это частично обусловлено влиянием средств верстки, основанных на принципах статической печати, на удобочитаемость для экрана дисплея. Большие объемы информации являются доступными в печатном виде, и в области техники печати хорошо известно, что преимущество и важность хорошего оформления документа способствуют передаче информации, удобочитаемости и конкурентоспособности, поскольку он привлекает и удерживает внимание зрителей. Несмотря на то, что высококачественное оформление, основанное на сетке, является обычным при печати, оно не является преобладающим в документах, отображаемых в режиме онлайн. Соответственно, должны быть исследованы новые концепции многоуровневого оформления для обеспечения учета таких характеристик дисплея, как размер экрана, соотношение сторон и ориентация.
Сеть Интернет очень упрощает компоновку документов, исходя из информации, полученной из множества различных источников, и их совместное отображение на одном экране. Это выполняют поисковые системы и агрегаторы новостей и отображают свои результаты в виде web-страницы на языке гипертекстовой разметки (HTML). Однако вместо этого было бы предпочтительно отображать эти результаты способом, обеспечивающим хорошее оформление и привлекательность, который конкурирует с качественными вариантами оформления, которые обычно видят в печатной продукции. В предыдущей работе была обеспечена возможность отображения вариантов оформления, основанных на сетке, которые являются адаптированными к различным условиям просмотра, но эти варианты оформления не всегда обеспечивали хороший переход к иному информационному содержимому, и их создание было недопустимо сложным.
Таким образом, предыдущая работа предоставила пользователям возможность оформления макетов документов, основанных на сетке, которые являются адаптированными к различным размерам окон, но эти макеты документов были заданы на языке низкого уровня, создание и обеспечение поддержки которого являлось трудной задачей. Например, "стиль" мог быть создан таким образом, что представлял собой совокупность шаблонов, основанных на ограничениях, каждый из которых может отображать определенную совокупность информационного содержимого в заданном интервале размеров экрана. Когда происходит изменение размера окна документа, то система ограничения шаблона изменяет размеры каждого элемента изображения до тех пор, пока не будет пройдено пороговое значение, и в этот момент используют другой шаблон. Однако, задачей предыдущих систем являлась возможность повторного использования стилей документа для множества документов. Хотя это и было в некоторой степени справедливым, практически было установлено, что многие макеты не имели бы хороший внешний вид, если бы размеры изображения значительно отличались от размеров изображения, используемых в первоначальном оформлении. Создание надежного стиля, который мог бы работать с любой комбинацией визуальных элементов, требовало разработки огромного количества шаблонов, по одному для каждой возможной комбинации элементов и изменений элементов.
Соответственно, прежняя адаптивная система создания документов позволила оформителям создавать документы, адаптированные к различным размерам и форматам экрана, но она имела два основных недостатка. Во-первых, было очень трудно работать с реальными макетами документов как в плане создания новых вариантов оформления, так и в плане видоизменения существующих вариантов оформления. Во-вторых, макеты документов не были очень хорошо адаптированными к несходным между собой выборкам информационного содержимого без их видоизменения оформителями или редакторами перед публикацией.
Макеты в печатных средствах имеют преимущество, заключающееся в наличии оформителей и редакторов, которые производят индивидуальную настройку конечного продукта путем изменения как макета, так и информационного содержимого. Маловероятно то, что одиночный статичный шаблон оформления будет иметь очень хороший внешний вид для различных типов информационного содержимого, где заголовки или колонтитулы имеют различные значения длины, а графические материалы имеют различные размеры, даже несмотря на то, что большинство элементов оформления на странице могут быть одинаковыми. Одной из основных проблем в многоуровневом оформлении этого типа является необходимость обеспечения поддержки качественных макетов ввиду отсутствия редактора, удостоверяющего, что все в макете выглядит хорошо, и осуществляющего при необходимости индивидуальную настройку параметров, при этом варианты оформления должны быть приспособленными для множества способов визуального отображения информационного содержимого и различать, какой именно способ является наилучшим в любой момент времени.
КРАТКОЕ ИЗЛОЖЕНИЕ СУЩНОСТИ ИЗОБРЕТЕНИЯ
Ниже приведено упрощенное краткое изложение сущности заявленного предмета изобретения для обеспечения понимания основ некоторых аспектов заявленного предмета изобретения. Это краткое изложение не является исчерпывающим описанием настоящего изобретения. Подразумевают, что оно не определяет ключевые/критически важные элементы настоящего изобретения или границы объема патентных притязаний настоящего изобретения. Его единственная цель состоит в предоставлении сведений о некоторых концепциях заявленного предмета изобретения в упрощенном виде в качестве вводной части к более подробному описанию, которое приведено далее.
Согласно одному из аспектов настоящего изобретения заявленный предмет изобретения, раскрытый здесь, содержит архитектуру, которая может облегчить простую разработку и отображение богатых вариантов оформления, основанных на сетке, и/или высококачественных макетов, которые являются адаптированными для многих различных условий просмотра и вариантов выбора информационного содержимого. Для реализации вышеизложенного могут быть использованы шаблоны, которые описывают на высоком уровне ограничения, налагаемые на макет. Создание и обслуживание этих шаблонов может быть упрощено, обеспечивая при этом более высокую трансформируемость макетов, что дает возможность лучшей их адаптации к различному информационному содержимому. Применимость архитектуры также может быть улучшена по сравнению с предшествующими системами (см., например, публикацию "Adaptive Grid-Based Document Layout" (AGBDL), Jacobs и др., 2003) за счет расширения типов информационного содержимого, которое может быть отображено, в частности, внимание сконцентрировано на информационном содержимом, которое собрано в единое целое из множества источников в сети Интернет.
Согласно одному из аспектов заявленного предмета изобретения шаблоны могут быть заданы посредством конструкций высокого уровня, которые являются простыми для понимания и в использовании. Соответственно, задача проектирования и/или поддержки шаблонов может быть связанной с ее применением на практике для художников-оформителей, которые могут не иметь высокой технической квалификации. Кроме того, результирующие варианты оформления могут быть легко понятными и удобными в обслуживании для других разработчиков, даже для тех, которые не оказывали помощь в создании шаблона. Созданные шаблоны могут быть использованы как для статических документов, так и для динамических документов, полученных из множества источников, основанных на Интернет-технологиях. Шаблоны также могут быть использованы для макетов многоуровневого оформления, посредством которых, например, могут быть созданы документы с множеством уровней информационного содержимого.
Согласно другому объекту изобретения результирующими макетами документов могут являться высококачественные макеты (например, макеты, которые "имеют хороший внешний вид"), которые сохраняют свою визуальную привлекательность на дисплеях различного размера, используя при этом информационное содержимое различных типов. Высококачественные макеты могут быть разработаны таким образом, что они не допускают компромиссов относительно семантического потока, индивидуальности фирменной символики, взаимосвязи изображений и текста, рекламных тем и т.п.
Согласно еще одному объекту заявленного предмета изобретения шаблоны могут быть достаточно гибкими для работы с широким многообразием информационного содержимого, которое может быть найдено в агрегированном документе, не требуя разработки и поддержки большого количества шаблонов. Вместо этого, единственный шаблон может определять несколько возможных конфигураций элементов и/или информационного содержимого, значительно сокращая количество шаблонов, необходимых для обеспечения гибких вариантов оформления. Кроме того, шаблоны, описанные на высоком уровне, могут быть преобразованы в ограничения низкого уровня, используемые в других системах. Эта архитектура может обеспечивать автоматическую подачу данных в системы ограничения для реализации общих характеров поведения в адаптивных документах вместо необходимости их программирования вручную каждым оформителем.
Кроме того, эта архитектура может предоставлять художникам-оформителям возможность легко проектировать высококачественные макеты документов, которые являются адаптированными к различным размерам экрана, даже в том случае, когда точное информационное содержимое, подлежащее отображению на дисплее, является неизвестным. В дополнение к этому, концепция документа может быть расширена таким образом, чтобы он включал в себя ссылки на внешние источники, которые, вероятно, не будут представлены в единообразном формате. Соответственно, эта архитектура может облегчать создание архитектуры многоуровневого оформления на основании высококачественных адаптивных вариантов оформления, основанных на сетке, которые имеют достаточную гибкость для работы с информационным содержимым, которое собрано в единое целое из множества источников и которое может быть неизвестным во время разработки.
Для реализации вышеизложенных и родственных целей здесь приведено описание некоторых аспектов заявленного предмета изобретения, приведенных в иллюстративных целях, которые связаны с приведенным ниже описанием и с приложенными чертежами. Однако эти объекты указывают всего лишь несколько из различных возможных путей использования принципов настоящего изобретения и подразумевают, что заявленный предмет изобретения включает в себя все такие объекты и их эквиваленты. Другие преимущества и элементы новизны настоящего изобретения станут очевидными из приведенного ниже подробного описания изобретения при его рассмотрении совместно с чертежами.
КРАТКОЕ ОПИСАНИЕ ЧЕРТЕЖЕЙ
На Фиг.1 проиллюстрирована система, облегчающая адаптацию макета документа, который может быть отображен на дисплее во множестве размеров и размерностей с широким многообразием информационного содержимого.
На Фиг.2 проиллюстрирована блок-схема системы, облегчающей создание, видоизменение и/или хранение шаблона.
На Фиг.3 проиллюстрировано средство создания макета, которое осуществляет генерацию высококачественного макета, по меньшей мере, частично на основании семантического потока, индивидуальности фирменной символики, взаимосвязи изображений и текста и/или рекламных тем.
На Фиг.4 проиллюстрирована система, облегчающая адаптацию макета документа, который может быть отображен на основании размеров устройства вывода.
На Фиг.5 проиллюстрирована система, создающая высококачественный макет на основании шаблона, заданного посредством конструкций высокого уровня, и преобразующая макет в ограничения низкого уровня, которые могут быть использованы средством низкого уровня для создания высококачественного макета.
На Фиг.6 проиллюстрирована система, которая выбирает шаблон и/или компонует информационное содержимое на макете для создания высококачественного макета.
На Фиг.7 проиллюстрировано средство создания макета, в котором для преобразования из исходного формата используют расширяемый язык таблиц стилей для преобразований (XSLT).
На Фиг.8 проиллюстрирована приведенная в качестве примера схема последовательности процедур, которая облегчает компоновку информационного содержимого для создания высококачественного макета.
На Фиг.9 изображена блок-схема адаптивной среды макета документа, основанного на сетке.
На Фиг.10 изображена блок-схема вычислительной среды и ее компьютерные системы, которые могут быть использованы в настоящем изобретении.
На Фиг.11 изображена блок-схема макета документа, содержащая адаптивные стили и шаблоны макета.
На Фиг.12 изображена блок-схема адаптивного шаблона.
На Фиг.13 изображена блок-схема информационного содержимого документа, содержащего потоки информационного содержимого.
На Фиг.14 изображена блок-схема потока информационного содержимого, содержащего отдельные элементы информационного содержимого.
На чертежах Фиг.15A - Фиг.15Б изображена схема последовательности операций способа применения информационного содержимого документа к шаблонам.
На чертежах Фиг.16A - Фиг.16В изображены схемы последовательности операций способа "втекания" информационного содержимого в элементы в макете документа.
На чертежах Фиг.17A - Фиг.17В изображены схемы последовательности операций способа самоустановки размеров элементов в макете документа.
На Фиг.18 изображены схемы последовательности операций способа количественной оценки шаблона на основании того, насколько хорошо шаблон соответствует информационному содержимому документа.
На чертежах Фиг.19A - Фиг.19Г изображена схема последовательности операций способа оптимального разбиения информационного содержимого документа на страницы с преобразованием в адаптивный макет документа, основанный на сетке.
На Фиг.20 проиллюстрирована блок-схема вычислительной среды, которая приведена в качестве примера.
ОПИСАНИЕ ИЗОБРЕТЕНИЯ
Теперь приведено описание заявленного предмета изобретения со ссылкой на чертежи, на которых для обозначения одинаковых элементов на всех чертежах использованы одинаковые номера позиций. В приведенном ниже описании в пояснительных целях изложены многочисленные конкретные подробности для обеспечения глубокого понимания настоящего изобретения. Однако очевидно, что заявленный предмет изобретения может быть реализован на практике без этих конкретных подробностей. В других случаях известные структуры и устройства показаны в виде блок-схем для облегчения описания заявленного предмета изобретения.
Подразумевают, что используемые в этой заявке на изобретение термины "компонент" и "система" относятся к объекту, связанному с применением компьютера, который реализован либо аппаратными средствами, либо посредством комбинации аппаратных средств и программного обеспечения, либо посредством программного обеспечения, либо посредством исполняемой программы. Например, компонентом может являться процесс, выполняемый в процессоре, процессор, объект, исполняемый файл, поток выполняемых задач, программа и/или компьютер, но эти примеры не являются ограничивающим признаком. В качестве иллюстративного примера компонентом может являться как приложение, выполняемое в сервере, так и сам сервер. Один или большее количество компонентов могут находиться внутри процесса и/или потока выполняемых задач, и компонент может быть локализован в одном компьютере и/или распределен между двумя или большим количеством компьютеров.
Используемые в этой заявке на изобретение термины "оформление" или "макет", как правило, относятся к тому, каким образом информационное содержимое скомпоновано в документе. Используемые здесь термины "оформление" и "макет" могут быть, по существу, взаимозаменяемыми. Например, оба термина: "оформление документа" и "макет документа", могут относиться к тому, каким образом информационное содержимое скомпоновано в документе.
Используемая в этой заявке на изобретение фраза "высокий уровень", как правило, относится к языку программирования или программируемым конструкциям, которые являются более удобными для пользователя, чем языки или конструкции низкого уровня, и могут быть в некоторой степени независимыми от компьютерной платформы. Конструкции высокого уровня могут обеспечивать абстракции для операций низкого уровня для предотвращения сложности, которая в противном случае необходима для реализации операций. Обычно языками программирования низкого уровня считают язык ассемблера, а также чистый язык гипертекстовой разметки (HTML) и другие "свободные" форматы кодирования, тогда как выходной формат после применения расширяемого языка таблиц стилей для преобразований (XSLT) считают относящимся к высокому уровню.
Используемый здесь термин "высококачественный (высокое качество)" означает, что результат на выходе определен как имеющий хороший внешний вид при имеющихся на текущий момент времени размерах дисплея и при имеющемся на текущий момент времени информационном содержимом. Термин "высококачественный" может относиться к макету, или к оформлению, или к конкретному местоположению внутри макета, для которого будет вставлено конкретное информационное содержимое. Например, высококачественным макетом является тот макет, который определен как имеющий хороший внешний вид при имеющихся на текущий момент времени размерах дисплея с имеющимся на текущий момент времени информационным содержимым, тогда как местоположением, обеспечивающим высокое качество, является местоположение, для которого может быть вставлено конкретное информационное содержимое, обеспечивая при этом сохранение высококачественного характер всего макета или оформления. Следует понимать, что высококачественный характер макета или местоположения может потребовать выполнения дополнительных условий, таких как, например, недопущение компромиссов относительно семантического потока, индивидуальности фирменной символики, взаимосвязи изображений и текста, рекламных тем и т.п. Также следует понимать, что эти дополнительные условия могут быть основаны на описанных ниже соображениях, например на непрямоугольных шаблонах и элементах, на выравнивании колонок текста, на неразрывных абзацах и на элементарных поддокументах (atomic sub-documents) и на интерактивности.
Описанные здесь варианты осуществления изобретения относятся к системе адаптивного отображения агрегированных данных, основанных на Интернет-технологии, и для усовершенствования шаблона для системы создания адаптивного макета документа, основанного на сетке. Предложена система, предназначенная для агрегирования информационного содержимого из сети Интернет и для его отображения с использованием системы создания адаптивных макетов документов, основанных на сетке (Adaptive Grid-Based Document Layout, AGBDL), которая позволяет отображать данные в широком диапазоне высококачественных визуальных форматов, которые могут автоматически адаптироваться к различным размерам дисплея. В системе может использоваться любой из нескольких источников информационного содержимого, которыми являются, в том числе, службы рассылки новостей в стандарте RSS, результаты, полученные в поисковых системах сети Интернет, серверные агрегаторы новостей в сети Интернет, такие как, например, агрегатор новостей MSN Newsbot сети Microsoft, и информационное содержимое "собранное понемногу" непосредственно с узлов всемирной паутины с информационным содержимым, например с сайтов газет и журналов, но эти примеры не являются ограничивающим признаком. Это может быть сделано путем расширения понятия документа, описанного в оригинальной работе, посвященной системе AGBDL, что также подробно изложено ниже.
Архитектура, являющаяся предметом изобретения, может обеспечивать поддержку документов, которые состоят из нескольких отдельных документов, и она может быть упорядочена в виде многоуровневой иерархии исходных документов и внедренных поддокументов. Каждый документ, являющийся компонентом, может состоять из комбинации собственных и внешних источников, которые во время загрузки могут быть преобразованы в "родной" формат документа, присущий данной системе, или посредством XSLT-преобразования, которое может быть задано для каждого отдельного источника, или посредством вспомогательной программы, которая могла бы являться средством сбора информации из сети Интернет (web-scraper), или какого-либо иного агента для сбора или обработки данных. Внешние источники могут быть определены на множестве уровней в документе. Внешний источник может быть загружен как целый документ (документ верхнего уровня или поддокумент), как конкретный поток информационного содержимого в документе или как одиночный элемент информационного содержимого в конкретном потоке информационного содержимого. Кроме того, внешний источник может быть включен в состав документа полностью или частично. Например, одиночный поток информационного содержимого может быть по выбору загружен из заданного источника после преобразования.
Для обеспечения поддержки этого схема документа была расширена таким образом, чтобы обеспечить возможность ссылок в AGBDL-документе на внешние источники описанными выше способами. Когда документ подвергают анализу и производят его загрузку, любые поддокументы или иное указанное внешнее информационное содержимое могут быть преобразованы (при необходимости), а затем также рекурсивно проанализированы и загружены. Поддокументы определены как самостоятельные полные AGBDL-документы с привязкой к их собственному набору шаблонов визуального отображения, которые используют в качестве подшаблонов в документе, содержащем эти поддокументы. Во время визуального отображения поддокумент передают в ту область экрана, в которой должен быть визуализирован документ. Поддокумент может быть рекурсивно разбит на страницы и затем размещен в заданной области так, как будто бы он является документом верхнего уровня в данном окне. Поддокумент может отличаться от другого внешнего информационного содержимого, которое загружено в виде данных в содержащий его документ, поскольку последний может быть отображен в "родительском" документе с использованием шаблонов "родительского" документа подобно любому иному информационному содержимому.
Что касается адаптивных шаблонов в системе AGBDL (подробное описание которой приведено ниже), то обеспечены расширения возможностей, связанные со следующими категориями: разработка шаблона высокого уровня, расширенная адаптируемость шаблона (адаптация шаблонов к информационному содержимому) и параметры и выходные данные шаблона. Все эти три категории могут облегчать авторскую разработку и поддержку "стилей документа". Стили могут быть определены как совокупность шаблонов, которые совместно охватывают ряд макетов, в которых может быть визуализирован документ.
Проектирование шаблона высокого уровня может обеспечить возможность определения шаблонов, основанных на ограничениях, с использованием конструкций высокого уровня, интерпретируемых системой, для генерации подробностей нижнего уровня, в том числе размеров и местоположения каждого элемента изображения, выводимого на экран дисплея, а также индивидуальных ограничений, которые управляют свойствами визуального отображения элемента, взаимосвязями с другими элементами изображения, выводимого на экран дисплея, и вариантами адаптивного поведения.
Обычно, например в системе AGBDL, шаблоны необходимо определять путем написания кода на расширяемом языке гипертекстовой разметки (XML), который описывает каждый элемент изображения, выводимого на экран дисплея, ограничение и атрибут, встречающийся в каждом шаблоне. Средство авторской разработки шаблонов (возможно) упрощает написание и видоизменение шаблонов посредством графического интерфейса пользователя (GUI), но по-прежнему требуется, чтобы автор точно определил все те же самые подробности этим другим способом.
Новшество, являющееся предметом изобретения, может предоставить возможность описания документа с использованием конструкций высокого уровня, таких как, например, адаптивные сетки для текстовых колонок и относительные взаимосвязи между элементами. Сетка для колонок может быть определена с использованием комбинаций из пропорциональной и абсолютной ширины колонок, и могут быть указаны правила, управляющие тем, какие именно значения приписаны столбцам при любой заданной ширине страницы. В таком случае элементы изображения, выводимого на экран дисплея, могут быть размещены таким образом, что охватывают одну или большее количество этих колонок или участки этих колонок, которые затем могут быть связаны с другими элементами, например, путем присвоения значений "над" ("over") и "под" ("under"). Один оператор описания может указывать или означать совокупность параметров, исходя из которых во время загрузки автоматически осуществляют генерацию многих ограничений нижнего уровня. Другие параметры могут быть определены путем установления атрибутов элементов, таких как, например, поля и заполнение, которые используют для генерации дополнительных ограничений.
Документы или страницы часто содержат совокупности сходных элементов изображения, выводимого на экран дисплея, например множественные колонки текста, в которых совместно используют множество одинаковых значений параметров. Объекты заявленного предмета изобретения могут обеспечивать возможность однократного описания элемента с последующей многократной реализацией его экземпляров. В каждом экземпляре может быть произведено переопределение подмножества его подробностей, например информации о его местоположении. Кроме того, язык описания реорганизован таким образом, что все ограничения, относящиеся к конкретному элементу, могут содержаться в описании элемента, что облегчает понимание и обслуживание шаблона пользователем.
Расширенная адаптируемость шаблона может обеспечивать возможность охвата более широкого диапазона размеров дисплея и информационного содержимого документа каждым отдельным шаблоном. Ранее каждый шаблон имел неизменный набор элементов изображения, выводимого на экран дисплея, требующий наличия конкретного набора информационного содержимого, и адаптация элементов для обеспечения охвата диапазона размеров страницы осуществлялась бы посредством системы ограничений. Для каждого иного набора информационного содержимого, например для иного количества иллюстраций на странице, требовался бы иной шаблон. Для рисунка с отношением его ширины к высоте, соответствующим альбомной ориентации, использовался бы иной шаблон, чем для рисунка, отношение ширины которого к высоте соответствует портретной ориентации. Для манипулирования множеством рисунков на странице, которые имеют потенциально различные значения отношения ширины к высоте или различные значения разрешающей способности, потребовалось бы увеличение количества шаблонов для обработки возможных комбинаций типов рисунков, появляющихся в различном порядке следования в потоках информационного содержимого. В исходной системе один шаблон также бы имел постоянное количество колонок, требуя наличия новых шаблонов для обработки всех возможных комбинаций типов рисунков для каждого количества колонок, которые могут иметься на странице. Общее количество шаблонов, требующееся для гибкого "стиля", экспоненциально возрастает с увеличением возможных размеров, в которых происходит адаптация, что делает создание широко применимого стиля трудоемким процессом и сильно затрудняет его обслуживание.
Определение шаблона, являющегося предметом изобретения, имеет несколько новых признаков, которые направлены на решение этих проблем. Необязательные элементы могут обеспечивать возможность обработки различных вариантов выбора информационного содержимого посредством одного шаблона. Элементы могут быть объединены в группы "ИЛИ" (OR), которые могут обеспечивать возможность реализации посредством шаблона только одного элемента из набора возможных вариантов выбора при каждом использовании шаблона. В группах "ИЛИ" может быть использован один из нескольких алгоритмов для принятия решения о том, какой именно элемент следует выбрать в данном макете, а этими алгоритмами являются, в том числе, следующие: алгоритм наилучшего соответствия, алгоритм "первого подходящего", алгоритм "первого хорошо подходящего" и аналогичные алгоритмы.
Кроме того, новые шаблоны теперь могут иметь переменное количество колонок. Определение колонки, описанное выше, может содержать правила для добавления адаптивных колонок на основании конкретных пороговых значений для страницы, или же пороговые значения могут быть вычислены компонентами архитектуры на основании минимальных значений ширины колонки. Приоритеты колонок могут быть определены таким образом, что управляют тем, какие именно колонки будут реализованы при конкретных размерах страницы. Колонки, которые не используются при конкретной ширине страницы, могут быть сокращены системой ограничения до ширины, равной нулю, для того чтобы при этом размере страницы перекрывающие их элементы были либо уменьшены по ширине, либо полностью исключены. Необязательные элементы и адаптивные сетки для колонок, действуя совместно, могут сильно сокращать количество шаблонов и объем соответствующего обслуживания.
Другое расширение возможностей системы шаблонов может предоставлять возможность передачи параметров в прямом и в обратном направлениях между родительскими шаблонами и подшаблонами, находящимися в них. Параметры и возвращенные значения могут быть помещены в кэш-память для ограничений, имеющуюся в принимающем шаблоне, поэтому элементы могут обращаться к ним как к любому другому значению ограничения. Эти параметры могут быть использованы, например, для задания количества колонок в подшаблоне, для сигнализации о факте включения или исключения необязательных элементов или для управления способом отображения рисунков в дочернем шаблоне. Параметрами, переданными в подшаблон, могут являться непосредственные значения или могут являться ограничения в системе родительского шаблона, оценка которых может производиться во время запроса.
Также в качестве параметра в подшаблон может быть передана таблица стилей, поэтому родительский документ может непосредственно управлять многими из подробностей набора, которые используют в дочернем шаблоне. Возвращенные параметры могут сообщать в родительский шаблон об иных скрытых подробностях макета дочернего шаблона, например о том, где расположен верх или низ рисунка, или о том, где заканчивается колонтитул или заголовок. Родительский шаблон может затем выровнять другие элементы изображения, выводимого на экран дисплея, по признакам в подшаблоне или гарантированно обеспечивать то, что два несвязанных между собой рисунка в отдельных подшаблонах не будут размещены рядом друг с другом.
Для специалистов в данной области техники понятно, что существуют другие усовершенствования, которые добавляют возможности шаблонов, в частности, для отображения иерархических составных документов, как описано выше. Например, группы "И" (AND) позволяют совокупности элементов использовать одиночный элементарный объект информационного содержимого, что обеспечивает возможность большей гибкости при макетировании и организации документов. Это может предоставлять возможность, например, извлечения основной фотографии из отдельного новостного сообщения и ее отображения на первой полосе газеты в виде отдельного элемента, нежели остальная часть текста. Другой признак может обеспечивать передачу области интерфейса графического дисплея, ИГД (GDI), в которой хранится элемент, в подшаблон, используемый в элементе, а не ограничивающий прямоугольник, который передают в предшествующих системах. Эта особенность может обеспечить для подшаблона возможность обтекания его текста вокруг перекрывающихся внахлест элементов в родительском шаблоне или выбора элемента, не загороженного другими элементами, из группы "ИЛИ" для показа изображения.
Как описано выше, в других вариантах осуществления изобретения могут быть предусмотрены конструкции высокого уровня для описания шаблона, облегчающие реализацию более мощных способов описания желательного характера поведения сетки для колонок, например конкретного диапазона желательных размеров для каждой колонки, в том числе набора вариантов выборов с фиксированным размером. Кроме того, могут быть определены приоритеты для того, чтобы разрешения ситуаций с избыточными ограничениями и с недостаточными ограничениями, например, с использованием автоматически сгенерированных полей. Варианты осуществления изобретения могут обеспечивать поддержку автоматически сгенерированных вертикальных сеток, подобных колонкам, но придерживаясь иных правил и иной эвристики, адаптивных подсеток, разделяющих отдельные колонки сетки, и дополнительных сеток верхнего уровня, что позволяет создавать макеты с различными наборами элементов, управление которыми осуществляют посредством различных сеток. Экземпляры отдельных элементов могут быть реализованы многократно, и предполагают, что из них возможно построить группу элементов, причем экземпляры всех их вместе могут быть реализованы многократно.
Определение непротиворечивой системы ограничений при наличии необязательных элементов (и групп элементов "ИЛИ") может быстро стать очень сложным и хитроумным, что также предполагает необходимость разработки конструкций для выработки правильной системы и автоматическое встраивание ее в шаблон при условии наличия описания желательного результата.
Кроме того, также предполагают добавление большей интерактивности к документам с адаптивной схемой размещения на дисплее (ADL), предоставляя конечным пользователям возможность изменять размер отдельных элементов изображения, выводимого на экран дисплея, при просмотре ими информационного содержимого, или добавлять новые данные в элемент, а также расширять характер поведения при адаптивном подсчете количества колонок, чтобы использовать более сложные способы выбора того, какие именно колонки следует включить в состав документа при заданном размере, на основании информационного содержимого. Это может включать в себя визуализацию каждого возможного варианта выбора колонок и выбор наилучшего варианта на основании количественного показателя макета.
Как кратко детализировано выше, согласно одному из объектов изобретения, заявленный предмет изобретения может расширять возможности продолжением предшествующей системы AGBDL для документов тремя общими способами. Во-первых, была улучшена система шаблонов, что сделало шаблоны более эффективными и потребовало гораздо меньшего количества шаблонов для охвата еще более широкого разнообразия информационного содержимого, в то же самое время упрощая написание и обслуживание шаблонов. Кроме того, было расширено определение документа, предоставляя возможность сбора информационного содержимого для документа из множества мест и компоновки отдельных документов в виде иерархий родительских и дочерних документов. Наконец, было обновлено средство создания макета (например, средство низкого уровня в системе AGBDL) для обеспечения поддержки новых функциональных возможностей, которые часто являются специфичными в новых областях. Теперь будет приведено описание этих расширенных возможностей и других аспектов заявленного предмета изобретения.
Шаблоны
Имеется три основных особенности шаблонов. Во-первых, шаблоны могут быть определены с использованием языка высокого уровня, что упрощает создание, понимание и обслуживание шаблонов. Во-вторых, шаблоны могут быть адаптируемыми к имеющемуся информационному содержимому, не требуя отдельных шаблонов для каждого возможного изменения и для каждой совокупности изменений информационного содержимого в отдельном макете. В-третьих, шаблоны могут иметь способность растяжения в большем диапазоне размеров экрана, что приводит к сокращению количества сходных шаблонов, которые должны быть написаны и для которых должна быть обеспечена поддержка.
Написание и понимание шаблонов в системе AGBDL являлось очень сложным, поскольку они были написаны на языке очень низкого уровня. Каждое отдельное ограничение задавалось в явном виде, и для каждого элемента на странице требовалось много ограничений. Написание системы ограничений для сложных адаптаций, например для переменного количества колонок, являлось недопустимо сложной задачей, и было слишком трудно расшифровывать шаблоны, написанные другим автором. В графическом интерфейсе пользователя было предусмотрено средство создания шаблонов, предназначенное для создания шаблонов, но оно, в основном, обеспечивало только лишь поддержку на низком уровне, по-прежнему требуя независимой установки большинства ограничений. Кроме того, было очень трудно понять и редактировать его выходной результат, что мешало осуществлять индивидуальную настройку оформления вне возможностей этого инструментального средства.
Согласно одному из вариантов осуществления изобретения в заявленном предмете изобретения применяют шаблоны, в которых целесообразно использована эффективность, присущая конструкциям высокого уровня, содержащие, соответственно, более мощные стандартные блоки в самом языке шаблона. Примитивы высокого уровня на новом языке могут быть скомпилированы в базовые структуры при загрузке шаблона системой, или же они могут быть непосредственно считаны обновленным средством создания макета. Множество частей системы ограничений могут быть логически выведены из новых примитивов и сгенерированы автоматически. Система также может автоматически осуществлять генерацию сложных систем ограничений для хорошо известных полезных задач.
Описание шаблона высокого уровня
Обе системы: первоначальная система AGBDL и система, являющаяся заявленным предметом изобретения, могут определять шаблоны как документы на расширяемом языке гипертекстовой разметки (XML). В первоначальной системе описание шаблона было организовано по разделам. Все элементы описывались посредством узлов <элемент> (<element>) в родительском узле <элементы> (<elements>), а все ограничения описывались посредством узлов <ограничение> (<constraint>) внутри родительского узла <ограничения> (<constraints>). Шаблоны высокого уровня могут сохранять эти два раздела, а также могут предоставлять автору возможность альтернативно задавать ограничение в любом узле "элемент". Эта гибкость может предоставлять для шаблона возможность группирования ограничений, непосредственно описывающих конкретный элемент, с элементом и размещать глобальные ограничения в общем разделе.
Вместо того чтобы требовать от авторов определения каждого ограничения по отдельности, может быть определено несколько дочерних узлов, которые могут быть помещены под узлами "элемент", для определения нескольких индивидуальных ограничений, наложенных на родительский элемент, в неявном виде. Например, для элемента с одиночными узлами могут быть определены поля (margins) и заполнение (padding), содержащие некоторые из атрибутов, которые показаны в приведенных ниже примерах:
<margin all="5" sides="5" ends="5" left="5" right="5"
top="5" bottom="5" />
<padding all="page.default.padding" left="page.width *
0.05" />
Конкретные присваиваемые значения обычно всегда будут замещать более общие. Может быть сделано предположение, что любое значение, которое не определено атрибутом, равно нулю. Автор может присваивать атрибуты непосредственным значениям или выражениям, ссылающимся на другие ограничения. Ограничения, управляющие заданием размеров и размещением элемента, могут быть определены одиночным узлом "местоположение" опять-таки с использованием подмножества возможных атрибутов. Если после синтаксического анализа узла "местоположение" этот узел имеет недостаточные ограничения, то обычно осуществляют генерацию ошибки.
Как проиллюстрировано в приведенном ниже примере, для определения элементов на основании месторасположения других элементов могут быть использованы атрибуты "над" ("over") и "под" ("under"). Например, атрибут "над" совмещает верхнюю границу текущего элемента с нижней границей обозначенного элемента, а атрибут "под" совмещает нижнюю границу элемента с верхней границей обозначенного элемента.
<location left="page.left" right="page.left+column.width"
top="header.bottom" height="300" />
<location center="page.center"" width="250" under="header"
over="footer" />
Обычно документ разделяют на крупную сетку из колонок. При изменении ширины документа существует всего лишь несколько вероятных вариантов характера поведения, которые будут использованы большинством колонок для адаптации. Например, все колонки могут одинаково увеличиваться в размерах при увеличении ширины страницы или одинаково сжиматься при уменьшении ширины страницы. Колонки также могут увеличиваться и уменьшаться в размерах в соответствии с некоторыми неизменными пропорциональными соотношениями. В альтернативном варианте или в дополнение к этому некоторые колонки могут оставаться имеющими фиксированную ширину, в то время как другие колонки изменяют свой размер, или же дополнительный размер по ширине может быть поглощен промежутками между колонками и полями вокруг колонок. Следует понимать, что язык шаблона может содержать инструментальные средства для определения адаптированных сеток с использованием комбинаций из упомянутых выше характеров поведения или даже из других вероятных или желательных характеров поведения. Объекты заявленного предмета изобретения могут автоматически осуществлять генерацию системы ограничений, необходимой для реализации определенных характеров поведения для колонок. Например, разработчик шаблона может создать узел <сетка> (<grid>), который определяет количество задействованных колонок (columns) и их характер поведения, заданный по умолчанию, а затем под узлом "сетка" может быть создано любое количество узлов "колонка", которые могут определять альтернативные варианты характера поведения для отдельных колонок, как показано в приведенном ниже примере:
<<grid id="maingrid" columns="4" type="proportional"
margin="10">
<column n="2" proportion="3,0" />
<column n="4" type="fixed" width="200" />
</grid>
Вышеупомянутый узел "сетка" может определить сетку для колонок, состоящую из четырех колонок. Первые три колонки определены таким образом, что увеличиваются в размерах пропорционально увеличению размеров страницы, и вторая колонка имеет в три раза большую ширину, чем каждая из других двух колонок. Четвертая колонка всегда остается имеющей постоянную ширину, равную 200 элементам изображения. Когда производят синтаксический анализ узла "сетка", то могут быть созданы ограничения, определяющие поименованные линии координатной сетки, например с "maingrid.grid0" по "maingrid.grid4". Может быть автоматически осуществлена генерация системы ограничений для определения местоположения каждой из линий координатной сетки при изменении ширины страницы. Могут быть заданы дополнительные ограничения путем определения границ колонок относительно поименованных линий координатной сетки, например "maingrid.column1.right", "maingrid.column1.left" и т.д. Автор шаблона может делать ссылки на эти наименования непосредственно в ограничениях, определяющих элементы, или, в противном случае, может поместить в узлах "местоположение" атрибут "column" ("колонка"), который накладывает ограничения слева и справа, как сделано в последних двух из приведенных ниже примеров.
<location left="maingrid.column2.left"
right="maingrid.column2.right" top="page.top"
bottom="page.bottom" />
<location column="maingrid.column1" top="page.top"
bottom="page.bottom" />
<location column="column2-column3" under="masthead"
height="300"/>
Тире ("-") во втором примере месторасположения колонки указывает здесь, что элемент имеет такую протяженность, что перекрывает обе колонки 2 и 3. Если задана только одна сетка, то префикс наименования в наименованиях колонки и сетки может отсутствовать, как сделано во втором приведенном выше примере, и предполагают, что они относятся к единственной сетке. В дополнение к отдельным колонкам могут использоваться значения ширины колонок. Для каждой колонки, которая может использоваться при определении месторасположения элементов, могут быть созданы дополнительные ограничения. Они могут содержать параметры "column.width" ("ширина колонки") и "column.center" ("центр колонки"), а также дробные линии колонок "column.1third" ("первая треть колонки"), "column.2third" ("вторая треть колонки"), "column.1quarter" ("первая четверть колонки") и т.д., но эти примеры не являются ограничивающим признаком.
Типичным случаем является наличие на странице множества сходных элементов, которые совместно используют многие, если не большинство общих свойств, таких как, например, текстовые колонки на странице с множеством колонок, графика разделителей и элементы с рисунками. Определения элемента могут быть многократно использованы путем размещения множества узлов <location> (<местоположение>) под одним узлом <element> (<элемент>). Каждый узел "местоположение" может создавать новый экземпляр родительского элемента, который имеет нужный размер и расположен в соответствии с дополнительными атрибутами узла. Наименования элементов могут иметь индекс на основе единицы (1), присвоенный в том порядке следования, в котором появляется узел "местоположение", который добавлен к их наименованиям для того, чтобы можно было различать экземпляры в выражениях для ограничений.
При определении ограничений в элементе с множеством экземпляров реализаций часто необходимо, чтобы в каждом экземпляре было использовано уникальное имя для каждого ограничения. Для облегчения множества реализаций может быть создан макрос. Строка "!THIS!", появляющаяся в наименовании ограничения или в выражении для ограничения, может определять наименование экземпляра, обработку которого производят в этот момент времени. Строка "!LAST!" может определять предыдущий элемент, который облегчает формирование цепочки или стека элементов. Когда наименование начинают с точки ("."), то обычно предполагают, что имя текущего экземпляра расположено перед этой точкой.
Использование множества узлов "местоположение" может являться кратким и эффективным способом создания дублирующих элементов, но это также может быть полезным для предоставления возможности изменений в некоторых экземплярах. Например, некоторые идентичные в других отношениях элементы могут иметь различные требования к z-уровню (описание которого приведено ниже) или могут являться потребителями различных потоков информационного содержимого. Поэтому любое свойство, определенное в узле "элемент", может быть переопределено в узле "местоположение". Свойства, которые состоят из одного значения, такие как, например, идентификатор уровня или стиля, могут быть переопределены путем задания атрибута в узле "местоположение". Более сложные свойства, такие как, например, предварительные условия, могут быть перезаписаны путем размещения узла "предварительные условия" под узлом "местоположение". В приведенном ниже примере показан элемент, реализованный в трех экземплярах, со свойствами, перезаписанными во вторых двух экземплярах.
<element id="text.column" layer="2" recomputeHeight="true">
<content content-src="body" />
<style id="normal" /> <padding sides="10" ends="5" />
<margin all="8" />
<location column="column1" under="header"
height="page.bottom-!THIS!.top" />
<location column="column2" under="header"
height="page.bottom-!THIS!.top" layer="3"/>
<location column="column3" under="header"
height="page.bottom-!THIS!.top" >
<padding all="0" top="5"/>
</location>
<constraint var="!THIS!.area" value="!THIS!.height *
!THIS!.width" />
</element>
В системе AGBDL обычно создавали новое семейство шаблонов для каждого количества колонок, поддержку которых обеспечивали на одной странице. Выбор семейства шаблонов определялся диапазоном значений ширины страницы. Для узких страниц могло использоваться семейство шаблонов с одной колонкой, а когда ширина страницы увеличивалась бы сверх заданного порогового значения, то система переключалась бы на семейство шаблонов с двумя колонками. Каждое семейство содержало бы множество шаблонов, охватывающих различные комбинации и места расположения информационного содержимого на странице. Большинство визуальных элементов в этих семействах часто являются одинаковыми, за исключением количества колонок.
Это подобие между семействами может быть выгодно использовано путем определения такой адаптивной сетки, которая не только изменяет размер колонок при изменении ширины страницы, но также может изменять количество колонок на странице. Это может быть достигнуто путем размещении узла <adaptive> (<адаптивный>) под узлом определения сетки в шаблоне. При наличии узла "адаптивный" количество колонок в узле "сетка" может служить в качестве максимального количества колонок. В узле "адаптивный" может быть установлено правило для определения количества активированных колонок при любой заданной ширине страницы. Могут быть определены, например, следующие правила: minColumnWidth (минимальная ширина колонки) или maxColumnWidth (максимальная ширина колонки). Правило minColumnWidth (минимальная ширина колонки) может давать команду использовать в шаблоне максимальное количество колонок, все из которых обычно имеют стандартную ширину, равную, по меньшей мере, заданному пороговому значению. Так как колонки могут иметь различные пропорциональные размеры, то при проверке на минимальную и/или на максимальную ширину фактический размер каждой колонки может быть разделен на величину пропорциональности колонки.
Автор может давать любым колонкам приоритет, который управляет порядком удаления колонок в том случае, когда страница имеет недостаточную ширину для того, чтобы содержать в себе все колонки. В том случае, когда приоритет не задан, может быть применен приоритет, заданный по умолчанию. Например, приоритет, заданный по умолчанию, может быть установлен таким образом, что удаляет колонки справа налево. Для присвоения различных приоритетов автор может включить атрибут приоритета в состав узла определения сетки с перечнем значений приоритета, разделенных запятыми, для их присвоения колонкам слева направо. В альтернативном варианте автор может включить атрибут приоритета в состав узлов определения колонок в узлах определения сетки. Приоритет обычно представляет собой целочисленное значение. Для заданного макета страницы в его состав обычно включены только те колонки, значение приоритета которых является меньшим или равным количеству активных колонок.
При удалении адаптивных колонок из экземпляра реализации шаблона система ограничений обычно сжимает колонку до ширины, равной нулю. Элементы, имеющие во время создания макета ширину, равную нулю, обычно не потребляют информационное содержимое или не вносят вклад в количественный показатель шаблона. Если элемент охватывает множество колонок, то наиболее вероятно, что этот элемент будет выглядеть таким образом, что охватывает только лишь те колонки, которые являются активными в любом заданном макете.
Иногда оформитель хотел бы разместить элемент в крайней левой или в крайней правой колонке страницы с адаптивными колонками. Для облегчения этого узлы "местоположение" могут распознавать особые ключевые слова в атрибуте колонки, например, "leftmost" ("крайняя левая") и "rightmost" ("крайняя правая").
Адаптация шаблона к информационному содержимому
Адаптация шаблонов к различным конфигурациям информационного содержимого может быть обеспечена несколькими способами. Шаблоны AGBDL могут иметь несколько наложенных на них предварительных условий, которые указывают те обстоятельства, в том числе точные требования к информационному содержимому, в которых мог бы использоваться каждый шаблон. В отличие от этого объекты заявленного предмета изобретения могут предоставлять возможность наложения предварительных условий на отдельные элементы в шаблоне в дополнение к наложению предварительных условий на шаблон в целом. Эти предварительные условия для элемента могут обеспечивать возможность условного включения элементов в состав макета в зависимости от имеющегося информационного содержимого, от условий просмотра или от любых иных ограничений в системе. Может оказаться полезным ухудшать объективный количественный показатель шаблона в том случае, когда необязательный элемент не используется. К системе ограничений шаблона может быть автоматически добавлено особое значение ограничения для каждого элемента, именуемое, например, "element-name.active" ("наименование-элемента.активный"). Значение "element-name.active" может быть установлено, например, равным единице в том случае, когда элемент содержится в макете, и равным нулю в том случае, когда элемент не содержится в макете. Это значение ограничения может быть проверено для учета наличия любых элементов в определении объективного количественного показателя шаблона. Предварительные условия, наложенные на узел "элемент", обычно применяют ко всем экземплярам элемента. Внутри узлов "местоположение" также могут быть размещены узлы "предварительные условия" для добавления дополнительных предварительных условий или для переопределения любых условий, наложенных на узел "элемент".
Предварительные условия для элемента могут предоставлять возможность индивидуального управления множеством элементов, но часто полезно связать воедино управление элементами, и элементы могут быть сгруппированы в несколько конструкций. Группы "И" могут обеспечивать возможность управления несколькими элементами посредством одного набора предварительных условий. Аналогичным образом, группы "ИЛИ" могут обеспечивать возможность определения нескольких элементов макета, только один из которых будет содержаться в любом экземпляре шаблона. Может быть обеспечена поддержка нескольких возможных вариантов и/или алгоритмов для принятия решения о том, какой экземпляр следует использовать в случае наличия множества возможных вариантов выбора. В алгоритме "первого подходящего" может быть использован первый элемент в группе, удовлетворяющий всем индивидуальным предварительным условиям. В алгоритме наилучшего соответствия может быть произведена оценка каждого элемента группы, и в нем используют тот элемент, который дает наилучший объективный количественный показатель макета. В алгоритме "первого хорошо подходящего" может быть использован тот первый элемент в группе, который дает количественный показатель макета, превышающий заданное пороговое значение.
Следует понимать, что автор должен проявлять осторожность при разработке шаблонов с необязательными элементами для того, чтобы ограничительные взаимосвязи между элементами оставались действующими и приводили к желательным результатам вне зависимости от того, присутствует ли какой-нибудь отдельный элемент в данной реализации шаблона или нет. Элементы фиксированного размера могут сохранять свои размеры, когда не создают их экземпляры, но размер элементов переменной высоты, определенных как recomputeHeight="true" (пересчет высоты = "истина"), обычно изменяют до высоты, равной нулю. Ограничения, определяющие границы группы "ИЛИ", могут быть определены автоматически таким образом, что они являются теми же самыми, что и границы любого входящего в состав этой группы элемента, выбранного для каждого макета.
Согласно другому объекту изобретения, может быть обеспечен способ адаптации шаблонов к информационному содержимому. Этот способ направлен на решение проблемы адаптации таких характеристик стиля, как гарнитура и размер шрифта, к конкретному информационному содержимому. При разработке шаблона стиль текстового блока может быть присвоен элементу изображения, выводимого на экран дисплея. Обычно это не является проблемой, но в некоторых областях применения, например при отображении на дисплее заголовков на газетной странице, визуальный внешний вид текста является важным для его эффективности. В печатаных газетах редактор полос пишет заголовки таким образом, чтобы заполнить имеющееся пространство, управляя разбивкой и балансом строк. Случайные заголовки, размещенные поперек колонок различного размера, часто плохо подлежат разбивке и/или не могут заполнить строки, создавая макеты низкого качества.
Согласно другому объекту заявленного предмета изобретения эта трудность может быть уменьшена за счет обеспечения возможности адаптации стиля в шаблоне к имеющемуся информационному содержимому во время отображения на дисплее. Разработчик может определять перечень возможных стилей для их использования вместе с данным элементом, и средство создания макета может предпринять попытку использования каждого из этих стилей, осуществляя генерацию объективного количественного показателя для каждого из них. Стиль, дающий наилучший количественный показатель, будет наиболее часто использован в реальном макете. Однако, вероятно, что одна и та же комбинация текста и шаблона приведет к выбору различных стилей при различных размерах страницы. Для определения наилучшего стиля может быть использован способ оценки схемы расположения текста. Например, могут быть использованы результаты функции оценки количественного показателя средства оптимальной разбивки строк, масштабированной с учетом размера шрифта конкретного стиля. Средство оптимальной разбивки строк измеряет свободное место, остающееся в каждой строке, которое выражено через ширину нескольких знаков. Поскольку ширина знака обычно зависит от размера шрифта без масштабирования, то имеется тенденция, заключающаяся в том, что шрифты большего размера создают меньшие (лучшие) количественные показатели.
Представление документов
Возможности представления документов были расширены для обеспечения возможности высококачественного визуального отображения данных, извлеченных из широкого множества различных источников. Документы обычно структурированы точно так же, как и в исходной системе AGBDL (описание которой приведено ниже), но с добавленными возможностями.
Поскольку отсутствует стандартный формат для данных в сети Интернет, то поддержку для оперативного преобразования источников данных обеспечивают, например, посредством расширяемого языка таблиц стилей для преобразований (XSLT). XSLT представляет собой систему, которая преобразовывает исходный документ (который обычно представляет собой документ на расширяемом языке гипертекстовой разметки (XML)) в новый результирующий документ путем применения набора правил, заданных файлом преобразования. Любые произвольные данные на языке XML могут быть преобразованы в документ, который может затем быть отображен на дисплее с учетом набора соответствующих шаблонов, на которые могут иметься ссылки в результирующем документе. Таким образом, в том случае, если существует XSLT-преобразование, любые данные на языке XML, web-страница, имеющая правильно сформированный источник на языке XML, или данные иного типа, поддающиеся автоматическому преобразованию, могут быть загружены непосредственно из сети Интернет.
Пользователь может указать файл преобразования в качестве параметра для нашего средства просмотра вместе с путем доступа к документу или с универсальным указателем информационного ресурса (URL). В альтернативном варианте пользователь может связать путь доступа или префикс URL с файлом преобразования путем помещения записи в реестр, например в реестр операционной системы. Эта связь может автоматически облегчать XSLT-преобразование, которое следует применять к входному документу всякий раз, когда производят загрузку по указанному пути доступа или по URL, начинающегося с этого префикса.
Обычно одно ограничение XSLT-преобразований состоит в том, что они будут функционировать только лишь с правильно сформированными документами на языке XML, но не будут функционировать на многих web-страницах, созданных на языке HTML. Следовательно, пользователь может определить альтернативную программу преобразования, например программу сбора информации из сети Интернет, которая может осуществлять предварительную обработку указанных данных перед их синтаксическим анализом. В некоторых вариантах применения, которые приведены в качестве примера, для создания конечного документа используют оба средства: специализированную программу сбора информации из сети Интернет и XSLT-преобразование, которое работает с выходными данными, полученными из программы сбора информации из сети Интернет.
Базовая структура документа обычно организовывает информационное содержимое в совокупность потоков информационного содержимого, которые могут определять упорядоченные последовательности данных. Информационным содержимым может являться поток текста, изображения или составные объекты, которые могут содержать совокупность их собственных подпотоков, рекурсивно скомпонованных с использованием подшаблонов. Шаблон, который отображает составные элементы, обычно должен предоставлять перечень шаблонов, которые могут быть использованы для компоновки отдельных потоков составного элемента.
Часто полезным является наличие предусмотренной гибкости для способа, посредством которого внешнее информационное содержимое включают в состав документа. Большей частью любого потока информационного содержимого в документе может являться внешний поток, который может быть загружен из представленного пути доступа или из универсального указателя информационного ресурса (URL). В дополнение к этому или в альтернативном варианте могут быть указаны внешние ссылки для отдельных элементов информационного содержимого в одиночном потоке информационного содержимого. Для всех внешних ссылок фактически может быть указано связанное с ними XSLT-преобразование или иной агент предварительной обработки, которые предназначены для конкретной ссылки. Почти любой документ, на который имеется ссылка, может быть загружен полностью как составной объект, либо в ином случае отдельные потоки могут быть извлечены из документа. Например, в агрегаторе новостей может иметься совокупность потоков, содержащих отдельные новостные сообщения, загруженные из отдельных источников, и затем единый поток, который извлекает каждый из их заголовков для построения оглавления.
Хотя это и не предусмотрено в системе AGBDL, объекты заявленного предмета изобретения могут вводить концепцию поддокумента, который может быть определен как составной элемент, содержащий свой собственный перечень шаблонов визуального отображения. Поддокумент при его визуализации может использовать свои собственные шаблоны, а не те шаблоны, которые заданы в родительском шаблоне. За счет добавления концепции поддокументов фактически любой документ теперь можно рассматривать как иерархию родительских и дочерних документов.
В каждом узле древовидной структуры документа разработчик может выбирать, какой из документов: родительский документ или дочерний документ, управляет макетом путем предоставления шаблонов. Не всегда желательно, чтобы этот выбор был выбором по принципу "все или ничего". Вместо этого имеются общие способы влияния на макет поддокумента из родительского шаблона. Одним из способов является переопределение родительским шаблоном таблицы стилей дочернего шаблона. В агрегированном документе, смоделированном в соответствии с типичной газетой, обычно желательно изменять стиль заголовков таким образом, чтобы их было легко различать, когда они появляются рядом друг с другом. Родительский шаблон может обеспечивать это путем передачи различных таблиц стилей в те элементы, в которых появляются газетные материалы.
Другим способом влияния на макет дочернего документа является передача параметров. Параметры, переданные в дочерние шаблоны, могут быть введены в систему ограничений дочернего элемента перед реализацией экземпляра шаблона. Значения параметра могут быть получены из системы ограничений родительского элемента или могут быть заданы непосредственно. Эти переданные значения ограничения могут использоваться дочерним документом любыми способами. Они могут быть включены в состав предварительных условий для отдельных элементов в подшаблоне, или на них могут ссылаться другие ограничения, управляющие месторасположением элементов и заданием их размеров. В других примерах авторы используют параметры для запрещения отображения больших графических объектов в поддокументах, не являющихся важным материалом, но включают эти объекты в состав документа при его отображении в качестве документа верхнего уровня или в качестве поддокумента, играющего роль важного материала. Параметры также могут быть использованы для совмещения характерных особенностей в поддокументе с характерными особенностями на исходной странице или в другом поддокументе. Разработчики могут аналогичным образом задавать значения, возвращаемые из подшаблона, которые могут быть введены в систему ограничений родительского шаблона после того, как произведена оценка подшаблона.
Особенность поддокументов и составных элементов состоит в том, что теперь они могут быть разбиты на страницы независимо. Доступ к последующим страницам поддокумента может быть осуществлен путем переворачивания страниц поддокумента на месте, или же они могут быть расположены на последующих страницах родительского документа. Первый способ может предоставлять пользователю возможность прочтения всего новостного сообщения, представленного в виде поддокумента, на первой странице родительского документа без перескока на внутреннюю страницу. Это также может позволять оглавлению занимать больше места, чем пространство, выделенное на его странице, но, тем не менее, обеспечивать доступ ко всем его данным. Другими вариантами использования могут являться, в том числе, например, многостраничные рекламные объявления или боковые меню, находящиеся на одной странице родительского документа.
Непрямоугольные шаблоны и элементы
Шаблоны в обеих системах: в исходной системе AGBDL и в новшестве, являющемся предметом изобретения, обычно определяют как прямоугольники с координатами исходной точки, шириной и высотой. Однако существует много случаев, когда желательно иметь непрямоугольный элемент. Такие функциональные возможности могут быть достигнуты в одном шаблоне путем разбиения элементов на слои, упорядоченные по координате z, где участки элементов более высокого слоя отличаются от элементов нижнего слоя, на которые они наложены. Оценка элементов может производиться в порядке убывания слоев. Перед размещением каждого элемента на макете области ИГД всех ранее размещенных элементов могут быть вычтены из области ИГД текущего элемента. Это может быть выполнено посредством одной операции в том случае, если области готовых элементов накоплены, например, путем операций логического сложения, которые компонуют их в одной области по мере завершения каждого из них. Эта операция может обеспечивать возможность обтекания других наложенных элементов любым текстом из более поздних элементов, хотя изображения обычно все же будут загорожены другими элементами. Тем не менее, области, занимаемые элементами, обычно не вычитают непосредственно из областей в подшаблонах. Вместо этого накопленное объединение областей элементов может быть передано в подшаблоны в нижних слоях, и эта родительская область может распределять накопленную область по этим подшаблонам. Таким образом, в шаблонах более высокого уровня может быть обеспечено обтекание текстом перекрывающихся элементов.
Путем вычитания родительской области можно частично справиться со сложностью перекрытия подшаблонов путем переформатирования текста, но также желательно избегать загораживания изображений или подшаблонов в дочернем элементе. Таким образом, отсутствует какой-либо простой способ обтекания изображений, не загораживая их, поэтому вместо этого определяют, является ли элемент (частично или полностью) загороженным другими элементами, и отражают это в объективном количественном показателе элемента. Если автор шаблона выбирает вариант, в котором количественный показатель элемента включен в состав полного количественного показателя шаблона, то шаблон может не использоваться при наличии другого шаблона, в котором элемент не загорожен другими элементами. В альтернативном варианте или в дополнение к этому один шаблон в группе "ИЛИ" наилучшего соответствия может включать в себя несколько мест расположения для элемента, загороженного другими элементами, и в этом случае обычно выбирают то место расположения, в котором элемент не загорожен другими элементами, при его наличии.
Элементы, загороженные другими элементами, обнаруживают путем вычитания родительской области из области ИГД элемента и последующего сравнения полученной в результате этого области с исходной. Автор шаблона может включать в состав любого элемента атрибут, указывающий штраф, который будет применен к объективному количественному показателю элемента в случае возникновения наложения при его размещении в макете.
С другой стороны, родительская область может быть использована для обеспечения дополнительной гибкости в документах. Родительская область может инициализировать шаблон верхнего уровня для области отсечения в системе окна приложения, имеющейся в операционной системе. Это может предоставлять системе возможность обтекания перекрывающихся окон других приложений текстом документа на настольном компьютере и потенциальную возможность перемещения изображений, загороженных другими элементами, за их пределы. Наилучшие результаты могут быть получены путем незначительного увеличения размеров любых перекрывающихся областей для создания поля рядом с любым переформатированным текстом.
Описанные выше процедуры могут позволять поддокументам занимать собой непрямоугольные элементы, но, тем не менее, это не всегда является достаточным для создания высококачественного макета. Например, может возникнуть желание разместить на первой полосе газеты заметную, бросающуюся в глаза фотографию из главного газетного сообщения, и объединение фотографии и остальной части статьи может не образовывать удобный прямоугольник. Несмотря на то, что вокруг элементов всегда может быть нарисован ограничительный прямоугольник, часто сложно создать шаблон, который может иметь большие вычтенные области или вычтенные области неправильной формы, но все же имеет такой же внешний вид, как было задумано. С этой трудностью можно более легко справиться путем формирования группы "И" из нескольких элементов, в которой все элементы являются потребителями информационного содержимого из одного объекта с составным информационным содержимым или поддокумента. Это может обеспечивать возможность эффективного размещения поддокумента в области любой произвольной формы. В примере выделенной статьи на странице газеты было желательно, чтобы один элемент являлся потребителем информационного содержимого из потока фотографий и чтобы другой элемент являлся потребителем остального информационного содержимого. Для этого общего случая может быть распознан и использован атрибут consumeRemainder (потребление остального). Разработчик может наложить этот атрибут на элемент в группе "И", который сообщает системе о том, что в этом элементе следует использовать все информационное содержимое, которое не было использовано другими членами группы, в которую входит этот элемент.
Проблемы, характерные для конкретной предметной области
В этом разделе описаны некоторые из трудностей, характерные для размещения совокупностей информационного содержимого, а также некоторые из способов, разработанных для борьбы с этими трудностями.
Выравнивание колонок текста
При размещении множества газетных материалов или статей в многоколоночном макете может существовать много вариантов того, каким образом следует расположить газетные материалы относительно друг друга. Одним распространенным способом разделения страницы (или части страницы) между двумя газетными материалами является разделение страницы по горизонтали, помещая второй газетный материал под нижней границей первого. При использовании макета этого типа информационное содержимое должно быть распределено равномерно между выделенными для этого колонками для того, чтобы каждая колонка заканчивалась в одном и том же месте по вертикали.
При реализации это может быть достигнуто посредством простого итерационного алгоритма компоновки, включаемого тогда, когда группе элементов (и группе "И"), отображающей колонки на странице, приписано свойство balanceColumns (выравнивание колонок). Ниже приведено описание того, как работает этот итерационный алгоритм для размещения одного газетного материала и для сохранения его нижней границы настолько ровной, насколько это возможно.
Сначала создают макет страницы с использованием, например, стандартного способа создания макета согласно алгоритму экономного продвижения. Если информационное содержимое полностью заполняет страницу, то производят выравнивание колонок, и этот макет может быть использован в качестве конечного результата. В противном случае измеряют все неиспользуемое пространство по вертикали, оставшееся в элементах, для которых должно быть выполнено выравнивание колонок. Этот общий объем дополнительного пространства может быть разделен на количество колонок для выдвижения начального предположения о том объеме, на который каждая колонка будет не до конца заполнена в результате выравнивания колонок. Затем эта мера недостаточного заполнения по вертикали может быть вычтена из нижней границы элементов, в результате чего получают местоположение обрезки, где, как ожидают, должна быть расположена нижняя граница текста после выравнивания колонок. Затем может быть установлена новая нижняя граница каждого из элементов, соответствующая этому вычисленному положению обрезки, для выполнения процедуры создания макета еще раз. Если вмещается весь текст и выполнено выравнивание колонок текста (допускают, чтобы последняя колонка была заполнена не до конца, имея максимум на 1 строку меньше, чем количество колонок, и, тем не менее, ее считают "выровненной"), то этот макет может использоваться. Однако если колонки не могут быть надлежащим образом выровненными, то положение обрезки может быть отрегулировано следующим образом: перемещено вверх в том случае, если последние колонки являются слишком разреженными, перемещено вниз в том случае, если пространство для всего информационного содержимого является недостаточным, путем выполнения процедуры создания макета еще раз. Эта процедура может выполняться итерационным способом до тех пор, пока в макете с выровненными колонками не будет достигнута сходимость.
Наконец, может быть установлена новая нижняя граница для элементов, расположенная чуть ниже любого информационного содержимого, размещенного в этом элементе. Это может предотвращать наличие у элементов непредсказуемой высоты на основании точного значения обрезки, при котором произошла сходимость итерации.
Неразрывные абзацы и элементарные поддокументы
В некоторых ситуациях разрыв части информационного содержимого на границе страницы может быть не нужен. Например, когда информационное содержимое представляет собой просто аннотацию из одного предложения, занимающего 2 или 3 строки, то предпочтительным вариантом может являться просто перемещение всего этого участка на следующую страницу. В конкретном случае, когда первая страница является подобной первой странице газеты, может иметься много небольших прямоугольников, которые служат в качестве участков для привлечения внимания к внутренним или иным разделам газеты. Как описано выше, информационным содержимым этих небольших прямоугольников обычно являются краткие рефераты отдельных газетных материалов. Предотвращение разрыва этих кратких рефератов на границах страницы обычно приводит к намного лучшему внешнему виду. Таким образом, для реализации этого либо частям информационного содержимого может быть приписано свойство, означающее, что "эта часть информационного содержимого не подлежит разъединению на границах страницы или на границах элемента", либо элементам может быть приписано другое свойство, означающее, что "приемлемыми являются только те элементы информационного содержимого, которые могут быть отображены здесь целиком". Информационным содержимым, о котором идет речь, может являться отдельный абзац или составной объект, содержащий множество потоков данных, которые, возможно, представляют собой фотографию и заголовок или боковое меню.
Интерактивность
Электронные документы не следует ограничивать имитацией печатных документов. Автоматическая адаптация к различным размерам экрана является тем, чего не могут делать печатные документы, но даже после того, как установлен размер дисплея, не следует предполагать, что документ имеет все свойства печатных документов. Например, абоненты, получающие информационное содержимое по подписке, привыкли к использованию гиперссылок в документах, отображаемых в реальном времени, но также существуют и другие способы, посредством которых читатель может взаимодействовать с электронным документом.
В качестве части интерактивности в документах может быть обеспечена поддержка гиперссылок, и адресом ссылок могут являться другие документы. Ими являются, в том числе, собственные документы и документы, которые могут быть преобразованы во время загрузки, описанные в приведенном выше разделе "Представление документов". В дополнение к пути доступа или к универсальному указателю информационного ресурса (URL) целевого информационного содержимого гиперссылка может содержать ссылку на XSLT-преобразование или на иную вспомогательную программу. Гиперссылки также могут являться ссылками на универсальные указатели информационного ресурса (URL), которые не могут быть считаны, и в этом случае может быть запущена программа навигации и просмотра web-страниц (web-браузер) для отображения информационного содержимого при активировании ссылки. Наконец, гиперссылки также могут указывать на информационное содержимое внутри документа, и в этом случае может быть отображена страница, содержащая эту ссылку.
При активировании гиперссылки в составном документе (например, в документе, содержащем поддокументы) существуют несколько возможных характеров поведения. Если ссылка находится в документе верхнего уровня, то весь документ может быть заменен документом, на который приведена ссылка. Если же ссылка находится в поддокументе, то желательным вариантом может являться замена только лишь поддокумента тем документом, на который приведена ссылка. Этот характер поведения является типичным характером поведения системы, заданным по умолчанию, но разработчик может задавать любой элемент поддокумента как элемент, являющийся "средством запуска", который может вызывать то, что активированная ссылка в том элементе заменяет документ верхнего уровня или другой указанный поддокумент иным документом. Эта функциональная особенность может быть полезной для поддокумента, который реализует предметный указатель или оглавление. Автор делает элемент средством запуска путем установки значения атрибута "средство запуска" ("launcher") равным "истина" ("true") в любом элементе или в любом узле "местоположение". Элементы, являющиеся средством запуска, могут облегчать замену документа верхнего уровня документами, на которые приведены ссылки, если в элементе также не задан атрибут "целевой объект" ("target"). В качестве атрибута "целевой объект" может быть задано наименование другого элемента в шаблоне, и в таком случае поддокумент, который отображают в текущий момент времени в обозначенном элементе, может быть заменен документом, на который приведена ссылка.
Другим способом активирования ссылок является "перетаскивание" ссылок в элементы поддокумента на странице. На странице, содержащей набор из множества поддокументов, таких как, например, газета, пользователь может посредством этого способа извлечь газетный материал из предметного указателя и оставить его в одном из мест, предназначенных для газетных материалов, на странице.
Результаты
Было приведено описание нескольких документов/вариантов применения, которые демонстрируют разнообразие применения и эффективность новшества, являющегося предметом изобретения. Областями применения являются, в том числе, адаптивная версия Интернет-журнала "Slate", программа чтения новостей, которая берет материалы из службы рассылки новостей в стандарте RSS газеты "Нью-Йорк Таймс" (New York Times), извлекает все информационное содержимое с их Web-узла и отображает газетные материалы на дисплее в формате широкоформатной газеты, и входной интерфейс для агрегатора новостей "MSN NewsBot" из сети Интернет, который выдает запросы в базу данных по сети Интернет для извлечения текущих обновлений последних новостей из тысяч источников в сети "всемирная паутина" и может функционировать в качестве адаптивного шлюза первой страницы для агрегирования отдельных адаптивных поддокументов. Одним из других вариантов реализации может являться, например, входной интерфейс для поисковой системы сети Майкрософт (MSN Search), который представляет результаты поиска в виде высококачественного адаптивного изображения, выводимого на дисплей.
Демонстрационный вариант реализации журнала "Slate" был создан с использованием системы шаблонов AGBDL. Для реализации страниц, охватывающих макеты с количеством колонок от 1 до 3, потребовалось 74 шаблона. В демонстрационной версии газеты "Нью-Йорк Таймс" (New York Times) использована новая система шаблонов и реализованы макеты с количеством колонок от 1 до 6, но для этого потребовалось всего лишь 5 шаблонов. Размер каждого из этих пяти шаблонов равен приблизительно одной четверти от размера шаблонов, созданных для демонстрационной версии журнала "Slate".
Теперь приведена ссылка на чертеж Фиг.1, на котором изображена система 100, облегчающая адаптацию макета документа, который может быть визуально отображен на дисплее во множестве размеров и размерностей с широким многообразием информационного содержимого. Как правило, система 100 может содержать интерфейс 102, который получает шаблон 104. Шаблоном 104 может являться описание ограничений для макета документа на языке высокого уровня. Средство 106 создания макета может интерпретировать шаблон 104 и на основании ограничений на языке высокого уровня для шаблона 104 определять, где именно следует разместить информационное содержимое 108 в документе для создания высококачественного документа 110.
Как подробно изложено выше, высококачественным документом является документ, в котором отображенная на дисплее выходная информация определена как имеющая хороший внешний вид при имеющихся на текущий момент времени размерах дисплея и при имеющемся на текущий момент времени информационном содержимом. Определение того, имеет ли отображенная на дисплее выходная информация хороший внешний вид, может быть основано на всех визуальных эффектах, а также на других атрибутах, более подробное описание которых приведено ниже со ссылкой на чертежи Фиг.3 и Фиг.6. Соответственно, средство 106 создания макета обычно требует наличия априорных сведений о типе (о типах) информационного содержимого, подлежащего компоновке, и о размерах дисплея, на котором размещают это информационное содержимое, до создания высококачественного макета 110. Однако следует понимать, что в шаблоне 104 необязательно должны содержаться априорные сведения и обычно при создании шаблона 104 или при приеме шаблона 104 средством 106 создания макета в нем отсутствуют априорные сведения о типе (о типах) информационного содержимого или о размерах дисплея.
Теперь, переходя к рассмотрению чертежа Фиг.2, на нем проиллюстрирована система 200, обычно содержащая интерфейс 202 пользователя, шаблон 104 и хранилище 204 шаблонов. Интерфейс 202 пользователя может облегчать создание, оформление и/или видоизменение шаблонов, например шаблона 104. Аналогичным образом в хранилище 204 шаблонов могут храниться шаблоны, например шаблон 104. Следует понимать, что интерфейсом 202 пользователя может являться или текстовый интерфейс пользователя, или графический интерфейс пользователя (GUI), который может использоваться для построения шаблона 104 посредством ограничивающих параметров высокого уровня и для обеспечения хранения шаблона 104, например, посредством хранилища 204 шаблонов. Также следует понимать следующее: несмотря на то, что на Фиг.2 изображен только лишь один шаблон 104, интерфейс 102 может использоваться для создания, оформления и/или видоизменения любого количества шаблонов 104. Аналогичным образом, хранилище 204 шаблонов может обеспечивать хранение множества шаблонов 104, которые могут быть извлечены интерфейсом 202 пользователя для их видоизменения и/или подачи, например, в средство 106 создания макета (Фиг.1) или в средство 602 разбиения на страницы (Фиг.6).
Шаблон 104 может состоять из нескольких параметров, таких как, например, определение растровых точек для макета (например, конструкции высокого уровня, описывающие элементы, а также предоставляющие информацию о том, для какого типа (для каких типов) информационного содержимого могут использоваться эти элементы), и система ограничений, которая может управлять тем, как расположены элементы относительно друг друга (например, посредством описанных выше команд "над" и "под"). Соответственно, шаблон 104 обеспечивает язык высокого уровня, который может использоваться для определения множества различных аспектов макета. Этот язык высокого уровня также может являться более естественным языком описания, который является более простым для автора, наряду с тем, что в то же самое время он способен выражать более широкие концепции с меньшим количеством операторов языка. Кроме того, этот язык высокого уровня может быть преобразован в описание низкого уровня, как более подробно описано ниже со ссылкой на Фиг.5.
Теперь приведена ссылка на чертеж Фиг.3, на котором изображена система 300, обычно содержащая средство 106 создания макета, способное создавать высококачественный макет 110. Как описано выше, средство 106 создания макета может получить шаблон (на чертеже не показан), который обеспечивает ограничения высокого уровня, которых следует придерживаться при создании высококачественного макета 110. Однако средство 106 создания макета фактически должно скомпоновать информационное содержимое 108 таким образом, чтобы схема его расположения соответствовала важнейшим ограничениям шаблона, а также условиям, необходимым для того, чтобы выходным результатом являлся высококачественный макет 110.
Как правило, средство 106 создания макета исследует тип и/или типы информационного содержимого 108, а также размеры дисплея для высококачественного макета 110 перед определением того, каким образом следует скомпоновать информационное содержимое 108. В некоторых случаях (например, в зависимости от типа (от типов) информационного содержимого или от других факторов) средство 106 создания макета может использовать иные соображения, такие как, например, семантический поток 302, индивидуальность 304 фирменной символики, корреляцию 306 рубрики и текста и рекламные темы 308. В некоторых случаях макет не будет являться высококачественным макетом 110, если не учтен, по меньшей мере, один из следующих факторов: семантический поток 302, индивидуальность 304 фирменной символики, корреляция 306 рубрики и текста и рекламные темы 308.
Термин "семантический поток" 302 обычно может относиться к фактическим значениям слов и, следовательно, обычно основан на значении слов относительно других слов. Соответственно, некоторые элементы или типы информационного содержимого 108, например газетные заголовки, имеют сильное семантическое обоснование для объединения слов друг с другом для предотвращения неоднозначности, даже несмотря на то, что их разделение для размещения слов в различных местах может предоставлять более простое решение для компоновки макета. Например, может существовать эффективное логическое обоснование семантического потока 302 для предотвращения размещения разрыва строки после приставки или слова, которые означают отрицание.
Средство 106 создания макета при генерации высококачественного макета 110 также может учитывать индивидуальность 304 фирменной символики. Например, информационным содержимым 108 может являться товарный знак, состоящий из двух связанных между собой изображений, которые являются наложенными друг на друга в виде хорошо знакомого изображения, или же для фабричного знака требуется другое информационное содержимое 108 (например, хорошо известный товарный знак фирмы "Intel", содержащий графический завиток, текст "Intel Inside" и четыре звуковых тона) для того, чтобы он был полностью иллюстративным. Если каждое из изображений и/или иное информационное содержимое скомпонованы неправильно, то макет может потерять некоторые из эффектов и/или смысл, которые могут быть достигнуты иными способами при помощи других средств верстки вместе с редакторами-оформителями.
Кроме того, при создании высококачественного макета 110 средство 106 создания макета также может учитывать корреляцию рубрики и текста. Например, газеты обычно предоставляют небольшой заголовок, описывающий рубрики. Изображения (например, элементы информационного содержимого) также могут иметь выноски для указания характерных особенностей изображения или содержащие текст, произнесенный персонажами на фотографии. В этих случаях важно учитывать место расположения определенного текста относительно элемента информационного содержимого.
Аналогичным образом, при создании высококачественных макетов 110 средство 106 создания макета может учитывать рекламные темы 308. Рекламные темы 308 могут быть основаны на любом из нескольких примеров, приведенных выше относительно элементов 302-306, и по аналогичным причинам для них может потребоваться дополнительный анализ, выполняемый средством 106 создания макета. Однако следует понимать, что для рекламных тем 308 могут потребоваться условия, которые в других отношениях могут противоречить другим соображениям. Также следует понимать, что вышеупомянутые примеры приведены просто в иллюстративных целях, и подразумевают, что они никоим образом не являются ограничивающим признаком. Могут быть применены и другие варианты, не выходя за пределы объема патентных притязаний и сущность этого изобретения.
Со ссылкой вкратце на чертеж Фиг.4, на нем показана система 400, облегчающая адаптацию макета документа, который может быть отображен на дисплее во множестве размеров и размерностей с широким многообразием информационного содержимого. Система 400 обычно содержит средство 106 создания макета, информационное содержимое 108, высококачественный макет 110 и устройство 402 вывода данных. Устройством 402 вывода данных фактически может являться любое устройство, способное визуально отображать цифровое информационное содержимое на малогабаритных дисплеях, носимых на запястье, на портативных карманных устройствах, на цифровых коммутирующих матрицах, на рабочих станциях, на настенных дисплеях и даже на очень больших дисплеях для придорожных рекламных щитов и зданий. Как правило, средство 106 создания макета определяет размер и размерность высококачественного макета 110, исходя из устройства 402 вывода данных.
Теперь, переходя к рассмотрению чертежа Фиг.5, на нем изображена система 500, которая обычно содержит шаблон 104, средство 106 создания макета, информационное содержимое 108, высококачественный макет 110 и средство 502 низкого уровня. Средство 502 низкого уровня может применять информационное содержимое 108 для адаптивного макета, основанного на сетке, на основании ограничений низкого уровня. Однако средство 502 низкого уровня не способно принимать шаблон 104 высокого уровня, но если обеспечена достаточная детализация и абстракция (например, средством 106 создания макета), то средство низкого уровня может создавать высококачественный макет 110. Подробное описание средства 502 низкого уровня приведено ниже при описании системы AGBDL. Как описано выше, средство 106 создания макета на основании ограничений высокого уровня, имеющихся в шаблоне 104 (а также на основании дополнительных условий при их наличии), может определять, каким образом следует скомпоновать информационное содержимое 108 для создания высококачественного макета 110. После того как известен точный макет, который обеспечит создание высококачественного макета 110, средство 106 создания макета может также преобразовать эту информацию в ограничения низкого уровня для того, чтобы средство 502 низкого уровня могло создать высококачественный макет 110.
На Фиг.6 проиллюстрирована система 600, облегчающая адаптацию макета документа, который может быть отображен на дисплее во множестве размеров и размерностей с широким многообразием информационного содержимого. Система 600 обычно содержит интерфейс 102, шаблон 104, средство 106 создания макета, информационное содержимое 108, высококачественный макет 110 и средство 602 разбиения на страницы. Подробное описание средства 602 разбиения на страницы приведено ниже в разделе, относящемся к системе AGBDL; однако в данном случае средство 602 разбиения на страницы обеспечивает уровень абстракции для средства 106 создания макета. Например, средство 602 разбиения на страницы получает информационное содержимое 108, а также осуществляет обмен информацией с интерфейсом 102 для выбора шаблона 104, который будет использован для заданного информационного содержимого 108. Следует понимать, что в альтернативном варианте средство 602 разбиения на страницы может извлекать шаблон 104, например, непосредственно из хранилища 204 шаблонов, показанного на Фиг.2. Средство 106 создания макета получает шаблон 104 и информационное содержимое 108 и компонует информационное содержимое 108 для создания высококачественного макета 110. По существу, средство 602 разбиения на страницы может определять, какой именно шаблон 104 следует использовать для каждого документа и/или для каждой страницы документа, а средство 106 создания макета может определять, каким образом следует скомпоновать реальное информационное содержимое 108, чтобы оно соответствовало высококачественному макету 110.
Теперь, переходя к рассмотрению чертежа Фиг.7, на нем проиллюстрирована система 700 для создания высококачественного макета 110. Система 700 обычно содержит средство 106 создания макета, которое получает информационное содержимое 108. Согласно варианту осуществления изобретения, который приведен в качестве примера, информационным содержимым 108 может являться информационное содержимое несходного между собой типа (несходных между собой типов), которое собрано в единое целое из множества источников. Например, информационное содержимое 108 может быть извлечено из хранилища 702 информационного содержимого, например из хранилища данных, может представлять собой потоковую передачу мультимедийной информации 704, например, из аппаратного устройства и может представлять собой информационное содержимое 706 из сети "всемирная паутина", которым может являться широкое многообразие типов информационного содержимого. Соответственно, поскольку информационное содержимое 108 может быть предоставлено из различных источников, то предполагают, что исходный формат 708 информационного содержимого 108 может быть существенно различным. Следовательно, средство 106 создания макета может получать информационное содержимое 108, отформатированное в исходном формате 708, и может преобразовывать исходный формат в тот формат, который средство 106 создания макета может использовать для создания высококачественного макета 110. Как описано выше, исходный формат 708, например, посредством расширяемого языка таблиц стилей для преобразований (XSLT) и преобразование могут быть реализованы автоматически.
На Фиг.8 проиллюстрирована методология 800, соответствующая заявленному предмету изобретения. Несмотря на то, что для упрощения объяснения предложенные методологии продемонстрированы и описаны как последовательность действий, следует понимать и осознавать, что заявленный предмет изобретения не ограничен порядком выполнения действий, поскольку некоторые действия могут выполняться в различной очередности и/или одновременно с другими операциями, что отличается от показанного и описанного здесь порядка выполнения действий. Например, для специалистов в данной области техники понятно и ясно, что в альтернативном варианте методология может быть представлена в виде последовательности взаимосвязанных состояний или событий, например в виде диаграммы состояний. Кроме того, для реализации методологии в соответствии с заявленным предметом изобретения могут потребоваться не все проиллюстрированные здесь действия. Помимо этого, следует понимать, что методологии, раскрытые ниже и во всем этом описании, могут быть сохранены в некотором изделии для облегчения транспортировки и передачи этих методологий в компьютеры. Подразумевают, что используемый здесь термин "изделие" охватывает собой компьютерную программу, доступ к которой может быть осуществлен из любого считываемого посредством компьютера устройства, носителя или средства.
Теперь приведена ссылка на чертеж Фиг.8, на котором проиллюстрирована приведенная в качестве примера компьютерная методология 800 компоновки информационного содержимого для создания высококачественного макета. При операции 802 может быть выбран шаблон для макета документа. Как правило, шаблон написан на языке высокого уровня и может быть выбран из хранилища шаблонов одним из следующих средств: интерфейсом, средством разбиения на страницы и средством создания макета. При операции 804 может быть определен размер дисплея для отображения документа. Следует понимать, что это определение может быть сделано на основании размера экрана устройства вывода данных и/или области в нем. При операции 806 может быть получено информационное содержимое для документа. Как описано выше, информационное содержимое может поступать из множества разнообразных источников, таких как, например, хранилище информационного содержимого, потоковые передачи мультимедийной информации, сеть Интернет и т.д., и оно может существовать в широком многообразии форматов, которые могут не соответствовать формату высококачественного макета, и, следовательно, может потребоваться их надлежащее преобразование.
При операции 808 могут быть определены подходящие места расположения для конкретного информационного содержимого путем использования ограничений высокого уровня, предоставленных, например, шаблоном, а также размера дисплея для окончательного высококачественного макета. Следует понимать, что может существовать множество подходящих мест расположения конкретного информационного содержимого. При операции 810 из подходящих мест расположения, определенных при операции 808, может быть выбрано место расположения, обеспечивающее высокое качество. Как изложено выше, местом расположения, обеспечивающим высокое качество, является то место расположения, в котором конкретное информационное содержимое может быть размещено таким образом, что при этом обеспечивается высококачественный характер всего макета. Следует понимать, что выбор места расположения, обеспечивающего высокое качество, может быть основан на многочисленных критериях. Например, места расположения, обеспечивающие высокое качество, могут быть определены на основании, по меньшей мере, одного алгоритма из набора алгоритмов, таких как, например, алгоритм наилучшего соответствия, алгоритм "первого подходящего", алгоритм "первого хорошо подходящего" и т.п.
Такое определение также может быть основано на иных условиях, которыми являются, например, семантический поток, индивидуальность фирменной символики, корреляция рубрики и текста, рекламные темы, а также на других условиях. При операции 812, может быть создан высококачественный макет.
Система AGBDL
На Фиг.9 представлена блок-схема среды 900 адаптивного макета документа, основанного на сетке, согласно варианту осуществления заявленного предмета изобретения, который приведен в качестве примера. Среда 900 адаптивного макета документа, основанного на сетке, содержит систему 902 создания адаптивного документа, основанного на сетке, запоминающее устройство 906 для таблиц стилей и запоминающее устройство 908 для шаблонов. Поддержка среды 900 адаптивного макета документа, основанного на сетке, обеспечена аппаратными и программными компонентами, подобными тем, которые имеются в известных вычислительных системах, средах и/или конфигурациях, более полное описание которых приведено со ссылкой на Фиг.10. Система 902 создания адаптивного документа, основанного на сетке, содержит средство 602 разбиения на страницы, средство 502 низкого уровня, средство 910 авторской разработки шаблонов и интерфейс 912 пользователя.
Запоминающее устройство 906 для таблиц стилей соединено с системой 902 создания адаптивного документа, основанного на сетке, через средство 502 низкого уровня таким образом, что обеспечена возможность обмена информацией между ними. В запоминающем устройстве 906 для таблиц стилей хранят данные о таблицах стилей, используемые для определения стиля текста в информационном содержимом 904 документа. Запоминающее устройство 906 для таблиц стилей содержит запоминающее устройство, способное хранить и извлекать данные, которым является, в том числе, оперативное запоминающее устройство (ОЗУ), флэш-память, магнитные запоминающие устройства, оптические запоминающие устройства, накопители на жестких дисках, сменные энергозависимые или энергонезависимые запоминающие устройства, оптические носители для хранения информации, магнитные носители для хранения информации или платы оперативной памяти, но эти примеры не являются ограничивающим признаком. В альтернативном варианте запоминающее устройство 906 для таблиц стилей может содержать удаленное хранилище данных, доступ к которому может быть осуществлен через систему проводной и/или беспроводной сети. Кроме того, запоминающее устройство 906 для таблиц стилей может содержать систему запоминающих устройств, содержащую многоступенчатую систему из первичных и вторичных запоминающих устройств, как описано выше. Первичное запоминающее устройство и вторичное запоминающее устройство могут функционировать в качестве кэш-памяти друг для друга, или же вторичное запоминающее устройство может служить в качестве резервной копии для первичного запоминающего устройства. В еще одном варианте компоновки запоминающее устройство 906 для таблиц стилей может содержать запоминающее устройство, сконфигурированное в виде простого файла базы данных или в виде реляционной базы данных, поиск в которой может быть осуществлен с использованием языка запросов, например языка структурированных запросов (SQL).
Запоминающее устройство 908 для шаблонов соединено с системой 902 создания адаптивного документа, основанного на сетке, через средство 602 разбиения на страницы и средство 910 авторской разработки шаблонов таким образом, что обеспечена возможность обмена информацией между ними. В запоминающем устройстве 908 для шаблонов хранят множество шаблонов 1106, причем каждый шаблон 1106 может быть использован для определения макета одиночной страницы информационного содержимого 904 документа. Макет информационного содержимого документа может содержать страницы, скомпонованные согласно одному или большему количеству шаблонов 1106. Запоминающее устройство 908 для шаблонов содержит запоминающее устройство, аналогичное запоминающим устройствам, описанным выше со ссылкой на запоминающее устройство 906 для таблиц стилей.
Средство 602 разбиения на страницы соединено со средством 502 низкого уровня и с запоминающим устройством 908 для шаблонов таким образом, что обеспечена возможность обмена информацией между ними. Средство 602 разбиения на страницы сконфигурировано при помощи аппаратных средств и программного обеспечения (см. Фиг.10), которые являются пригодными для выполнения задач и для обеспечения способностей и функциональных возможностей, изложенных в приведенном здесь описании. Кроме того, средство 602 разбиения на страницы может получать информационное содержимое 904 документа для его обработки с преобразованием в адаптивный макет, основанный на сетке. Информационное содержимое 904 документа может быть представлено посредством множества потоков 1303 информационного содержимого, которые определяют различные типы информационного содержимого, которыми являются, например, основной текст, изображения, внедренные рисунки, боковые меню, заголовки, аудиовизуальная информация и другое соответствующее информационное содержимое 904 документа, но эти примеры не являются ограничивающим признаком. Средство 602 разбиения на страницы обычно определяет соответствие информационного содержимого 904 документа отдельным шаблонам 1106, что может включать в себя подбор глобально оптимальных пар между информационным содержимым 904 документа и шаблонами 1106, но этот пример не является ограничивающим признаком.
Средство 502 низкого уровня соединено со средством 602 разбиения на страницы и с запоминающим устройством 906 для таблиц стилей таким образом, что обеспечена возможность обмена информацией между ними. Средство 502 низкого уровня сконфигурировано при помощи аппаратных средств и программного обеспечения (см. Фиг.10), которые являются пригодными для выполнения задач и для обеспечения способностей и функциональных возможностей, изложенных в приведенном здесь описании. Средство 502 низкого уровня может получать информационное содержимое 904 документа и шаблоны 1106 из средства 602 разбиения на страницы для обработки. Как правило, средство 502 низкого уровня автоматически форматирует информационное содержимое 904 документа путем использования шаблонов 1106 (например, применяет шаблоны 1106 к информационному содержимому 904 документа) и тем самым создает адаптивные документы 914, основанные на сетке. В дополнение к этому, средство 502 низкого уровня может использоваться для определения количественного показателя качества для каждой части (например, для каждой страницы) адаптивного документа 914, основанного на сетке, созданного путем применения шаблонов 1106 к информационному содержимому 904 документа.
При работе система 902 создания адаптивного документа, основанного на сетке, получает через средство 602 разбиения на страницы информационное содержимое 904 документа, подлежащее обработке, и шаблоны 1106 из запоминающего устройства 908 для шаблонов. Средство 602 разбиения на страницы подает информационное содержимое 904 документа и шаблоны 1106 в средство 502 низкого уровня для визуализации реальных макетов страниц. В альтернативном варианте осуществления заявленного предмета изобретения средство 502 низкого уровня соединено с запоминающим устройством 908 для шаблонов таким образом, что обеспечена возможность обмена информацией между ними, и, следовательно, средство 502 низкого уровня получает шаблоны 1106 непосредственно из запоминающего устройства 908 для шаблонов. Средство 502 низкого уровня применяет таблицы стилей, полученные из запоминающего устройства 906 для таблиц стилей, и шаблоны 1106 к информационному содержимому 904 документа и определяет количественный показатель качества на основании результатов. Средство 502 низкого уровня обеспечивает средство 602 разбиения на страницы всеми последовательностями допустимых шаблонов 1106 (например, всеми последовательностями тех шаблонов 1106, которые обеспечивают успешную и полную адаптацию информационного содержимого 904 документа к макету документа, основанному на сетке) и соответствующие им количественные показатели качества. Средство 602 разбиения на страницы вычисляет либо некоторую желательную последовательность шаблонов 1106, либо глобально оптимальную последовательность шаблонов 1106 на основании количественных показателей качества, предоставленных средством 502 низкого уровня. После определения пар между информационным содержимым и последовательностью шаблонов 1106 средство 602 разбиения на страницы подает информационное содержимое 904 документа и оптимальную последовательность шаблонов 1106 к средству 502 низкого уровня. Средство 502 низкого уровня автоматически форматирует информационное содержимое 904 документа согласно оптимальной последовательности шаблонов 1106. Затем система 902 создания адаптивного документа, основанного на сетке, передает результирующий адаптивный документ 914, основанный на сетке, соответствующему адресату (например, отображает на дисплее для пользователя, подает в другой программный модуль или сохраняет в виде файла).
Средство 910 авторской разработки шаблонов соединено с запоминающим устройством 908 для шаблонов и с интерфейсом 912 пользователя таким образом, что обеспечена возможность обмена информацией между ними. Средство 910 авторской разработки шаблонов сконфигурировано при помощи аппаратных средств и программного обеспечения (см. Фиг.10), которые являются пригодными для выполнения задач и для обеспечения способностей и функциональных возможностей, изложенных в приведенном здесь описании. Интерфейс 912 пользователя обеспечивает пользователя набором окон, пиктограмм, команд и/или меню для создания или видоизменения шаблонов 1106, хранящихся в запоминающем устройстве 908 для шаблонов. Путем использования средства 910 авторской разработки шаблонов и интерфейса 912 пользователя пользователь может рисовать и компоновать элементы макета, определять то, каким образом происходит адаптация элементов к различным размерам страницы, производить предварительный просмотр адаптации в интерактивном режиме и устанавливать для шаблона 1109 предварительные условия 1106 и взаимосвязи 1115, основанные на ограничениях.
При работе интерфейс 912 пользователя предоставляет схематичное представление шаблона 1106, размер которого может быть изменен в интерактивном режиме. Для создания нового элемента 1112 макета в шаблоне 1106 обычно требуется, чтобы пользователь нарисовал область в отображенном на дисплее интерфейсе 912 пользователя, а затем выполнил манипуляции с этой областью, задав ее желательный размер, положение и слой. Для сохранения целостности адаптивных шаблонов 1106 для большинства элементов 1112 шаблона 1106 требуется наличие взаимосвязей 1115, основанных на ограничениях.
Во время создания или редактирования шаблона пользователь может задавать ограничения на уровне страницы, определяя сетку страницы путем рисования горизонтальных или вертикальных направляющих и последующего использования интерфейса типа "захват-перетаскивание" для наложения ограничений на элементы относительно сетки. Горизонтальные или вертикальные направляющие могут быть созданы таким образом, что либо изменяют масштаб относительно страницы, либо сохраняют постоянное смещение. Направляющие также могут быть зависимыми от других направляющих, что предоставляет пользователю возможность задавать сетку с иерархической структурой. В частности, интерфейс 912 пользователя обеспечивает поддержку различных типов операций пользователя, в том числе: (1) если пользователь добавляет новую направляющую без выбора перед этим любых других направляющих, то положение новой направляющей задано относительно всей страницы; (2) если перед созданием новой направляющей пользователь выбирает одну существующую направляющую, то положение новой направляющей задано как постоянное смещение относительно выбранной направляющей; и (3) если перед созданием новой направляющей пользователь выбирает две существующие направляющие, то положение новой направляющей задано относительно двух выбранных направляющих, но эти примеры не являются ограничивающим признаком. Интерфейс 912 пользователя также может предоставлять пользователю возможность выполнения таких операций, которые позволяют пользователю задавать ограничения непосредственно между элементами без использования направляющих. В качестве примера, не являющегося ограничивающим признаком, пользователь может накладывать ограничения на нижнюю границу одного элемента таким образом, чтобы она совпадала с верхней границей другого элемента. Для решения проблем, возникающих в тех ситуациях, когда размер элемента определяется информационным содержимым, поступившим в этот элемент (а не геометрической конфигурацией самой страницы), пользователь может использовать средство 910 авторской разработки шаблонов для наложения ограничений на один из размеров элемента, а затем указать, что другой размер следует определять, исходя из информационного содержимого 904 документа.
После создания пользовательского шаблона 1106 пользователь может определить дополнительные предварительные условия на основании значения любой переменной в системе ограничений. Пригодность шаблона 1106 для информационного содержимого 904 документа зависит от использования предварительных условий и от функции оценки количественного показателя. После того как пользователем заданы источники информационного содержимого элемента 1112 шаблона 1106, могут быть автоматически вычислены предварительные условия для информационного содержимого шаблона 1106. Кроме того, пользователь может добавлять к элементам 1112 предпочтения для атрибутов, которые влияют на количественный показатель качества, который получает шаблон 1106 страницы для данного варианта выбора информационного содержимого 904 документа. Когда пользователь задает больше одного атрибута элемента 1112, то пользователь может ранжировать атрибуты в порядке их важности посредством интерфейса 912 пользователя.
Затем средство 910 авторской разработки шаблонов может автоматически создать функцию оценки количественного показателя, посредством которой средство 502 низкого уровня оценивает различные варианты выбора информационного содержимого 904 документа, которое может быть введено в виде потока в элемент. Учитывая заданное пользователем ранжирование атрибутов в порядке важности, средство 910 авторской разработки шаблонов может поставить в соответствие каждому атрибуту цифру в количественном показателе, при этом цифры более старших разрядов соответствуют более важным атрибутам. Когда средство 502 низкого уровня производит оценку варианта выбора информационного содержимого, то количественный показатель может быть вычислен следующим образом: значение "1" присваивают всем соответствующим друг другу атрибутам, а значение "0" присваивают всем несоответствующим друг другу атрибутам. В частности, если "a1" - "aN" - заданные пользователем предпочтения для атрибутов в порядке их важности, то система авторской разработки создает функцию оценки количественного показателя следующим образом: S=match(a1,b1)*(10^(N-1)) + match(a2,b2)*(10^(N-2))… + match(aN,bN)*(10^0), где S - количественный показатель качества оцениваемого конкретного варианта выбора информационного содержимого, b1-bN - фактические значения атрибутов, связанные с выбором информационного содержимого, а match(a,b) - функция, выдающая результат, равный "1", в том случае, когда "a" равно "b", и результат, равный "0", в противном случае. Таким образом, эта функция оценки количественного показателя дает лучший или худший количественный показатель в зависимости от того, насколько хорошо информационное содержимое соответствует атрибутам, заданным пользователем. Функция оценки количественного показателя обеспечивает следующее: более важным атрибутам дают строгий приоритет по сравнению с менее важными атрибутами. В качестве примера, не являющегося ограничивающим признаком, выбор информационного содержимого, соответствующего конкретному атрибуту "A", дает в результате лучший количественный показатель, чем другие варианты выбора информационного содержимого, которые не соответствуют атрибуту "A", но возможно соответствуют менее важным атрибутам.
Для специалиста в данной области техники понятно, что функции оценки количественного показателя могут быть реализованы различными способами. В качестве примера, не являющегося ограничивающим признаком, каждому атрибуту элемента может быть поставлена в соответствие цифра в окончательной оценке. Важность атрибута определяет соответствующую ему цифру, при этом наиболее важному атрибуту поставлена в соответствие цифра старшего значащего разряда. Следовательно, атрибут, являющийся k-м по счету наиболее важным атрибутом, будет соответствовать k-й цифре старшего значащего разряда в окончательной оценке. Для конкретного варианта выбора информационного содержимого функция оценки количественного показателя может присваивать значение, равное "1", тем цифрам, которые соответствуют совпадающим атрибутам, и значение, равное "0", тем цифрам, которые соответствуют несовпадающим атрибутам. Следовательно, функция оценки количественного показателя обеспечивает следующее: часть информационного содержимого, соответствующая самому важному атрибуту, имеет более высокий (то есть лучший) количественный показатель, чем любой другой вариант выбора информационного содержимого, который не соответствует самому важному атрибуту.
Различные шаблоны 1106 в стиле 1103 макета часто содержат общие характеристики (например, элементы, предварительные условия и ограничения). Соответственно, средство 910 авторской разработки шаблонов может обеспечивать поддержку системы или модели наследования шаблона 1106, которая упрощает видоизменение общих характеристик в нескольких шаблонах 1106, фактически не изменяя каждый из шаблонов 1106 по отдельности. В качестве примера, не являющегося ограничивающим признаком, пользователь может создать новый шаблон 1106 (например, дочерний шаблон 1106), который наследует характеристики существовавшего ранее шаблона 1106 (например, родительского шаблона 1106). Дочерний шаблон 1106 автоматически содержит все элементы, предварительные условия и ограничения родительского шаблона 1106. Затем пользователь может добавлять дополнительные элементы, предварительные условия и ограничения в дочерний шаблон 1106 для создания желательного пользовательского шаблона 1106. Если пользователь желает изменить одно из свойств, являющихся общими для родительских и дочерних шаблонов 1106, то пользователю нужно всего лишь изменить свойства родительского шаблона 1106, поскольку произойдет распространение этого изменения посредством наследования на все дочерние шаблоны 1106 родительского шаблона 1106. Модель наследования упрощает управление большим количеством шаблонов 1106 и помогает сохранять совместимость между шаблонами 1106.
Для специалиста в данной области техники понятно, что соединение с возможностью обмена информацией может содержать соединение любого подходящего типа, в том числе аналоговые, цифровые, беспроводные и проводные каналы связи, но эти примеры не являются ограничивающим признаком. Такими каналами связи являются, в том числе, медный провод, оптическое волокно, радиосвязь, связь в инфракрасном диапазоне, спутниковая связь или иные средства связи, но эти примеры не являются ограничивающим признаком.
На Фиг.10 представлена блок-схема вычислительной среды 1000 и ее компьютерных систем 1010, 1080, которые могут быть использованы в заявленном предмете изобретения согласно варианту его осуществления, который приведен в качестве примера. Вычислительная среда 1000 и ее компьютерные системы 1010, 1080 представляют собой только лишь один из примеров вычислительной среды и компьютерных систем, пригодных для практической реализации заявленного предмета изобретения, и подразумевают, что они не накладывают какие-либо ограничения на объем использования или на функциональные возможности настоящего изобретения. Не следует интерпретировать эти компьютерные системы 1010, 1080 как имеющие какую-либо зависимость от любого из компонентов или от комбинации компонентов, проиллюстрированных в приведенной в качестве примера вычислительной среде 1000, или как имеющие какие-либо требования, связанные с этими компонентами.
Следовательно, следует понимать, что предложенное изобретение способно функционировать в многочисленных иных средах или конфигурациях универсальных или специализированных вычислительных систем. Примерами известных вычислительных систем, сред и/или конфигураций, которые могут быть пригодными или подходящими для использования вместе с заявленным предметом изобретения, являются, в том числе, персональные компьютеры, серверы, карманные или портативные компьютеры, многопроцессорные системы, микропроцессорные системы, компьютерные приставки к телевизору, программируемая бытовая электроника, сетевые персональные компьютеры, мини-компьютеры, большие универсальные вычислительные машины, распределенные вычислительные среды, содержащие любую из вышеупомянутых систем или любое из устройств, и т.п., но эти примеры не являются ограничивающим признаком.
Объекты заявленного предмета изобретения могут также быть описаны в общем контексте с включением в него исполняемых компьютером команд, например, программных модулей, исполняемых компьютерной системой. Как правило, программные модули содержат подпрограммы, программы, программируемые элементы, объекты, компоненты, данные, структуры данных и т.д., которые выполняют конкретные задачи или реализуют конкретные абстрактные типы данных. Признаки предложенного изобретения могут быть реализованы на практике в распределенных вычислительных средах, в которых задачи выполняют удаленные устройства обработки данных, производящие обмен информацией через сеть связи. В распределенной вычислительной среде программные модули могут быть размещены как в запоминающих средах локальных компьютеров, так и в запоминающих средах удаленных компьютеров, в том числе в запоминающих устройствах для хранения данных, но этот пример не является ограничивающим признаком.
Со ссылкой на Фиг.10, приведенная в качестве примера вычислительная среда 1000 из заявленного предмета изобретения содержит универсальное вычислительное устройство в виде компьютерной системы 1010. Компонентами компьютерной системы 1010 могут являться, в том числе, процессор 1020, системная память 1030 и системная шина 1021, которая соединяет различные компоненты системы, в том числе системную память 1030, с процессором 1020 для передачи данных и/или команд в двух направлениях, но этот пример не является ограничивающим признаком. Системная шина 1021 может представлять собой любую из нескольких типов структур шины, в том числе шину запоминающих устройств или контроллер запоминающих устройств, шину периферийных устройств и локальную шину, с использованием любого из множества вариантов архитектуры шины. В качестве примера, не являющегося ограничивающим признаком, такими вариантами архитектуры являются, в том числе, архитектура шины промышленного стандарта (ISA), микроканальная архитектура шины (MCA), расширенная архитектура шины промышленного стандарта (EISA), локальная шина стандарта VESA и шина межсоединения периферийных компонентов (PCI) (также известная как "шина расширения").
Компьютерная система 1010 обычно содержит множество считываемых посредством компьютера носителей информации. Считываемые посредством компьютера носители информации могут содержать любые существующие носители информации, к которым можно осуществлять доступ, производить считывание из них или запись в них посредством компьютерной системы 1010, и они могут включать в себя как энергозависимые, так и энергонезависимые, как сменные, так и стационарные носители информации. В качестве примера, не являющегося ограничивающим признаком, считываемые посредством компьютера носители информации могут содержать компьютерные запоминающие среды и средства связи. Компьютерные запоминающие среды содержат как энергозависимые, так и энергонезависимые, как сменные, так и стационарные носители информации, реализованные любым способом или посредством любой технологии хранения информации, например при помощи считываемых посредством компьютера команд, данных, структур данных, программных модулей, программ, программируемых элементов или подпрограмм. Компьютерными запоминающими средами являются, в том числе, оперативное запоминающее устройство (ОЗУ), постоянное запоминающее устройство (ПЗУ), электрически стираемое программируемое постоянное запоминающее устройство (ЭСППЗУ), флэш-память или запоминающие устройства, выполненные по иной технологии, постоянное запоминающее устройство на компакт-дисках (CD-ROM), универсальные цифровые диски (DVD) или иное запоминающее устройство на оптических дисках, магнитные кассеты, магнитная лента, магнитооптические устройства для хранения данных, запоминающее устройство на магнитных дисках или иные запоминающие устройства на магнитном носителе, или любой иной носитель информации, который может использоваться для хранения желательной информации и к которому может осуществлять доступ компьютерная система 1010, но эти примеры не являются ограничивающим признаком. Средства связи обычно реализуют считываемые посредством компьютера команды, данные, структуры данных, программные модули, программы, программируемые элементы или подпрограммы в модулированном сигнале передачи данных, например на несущей, или иной транспортный механизм и содержат любые средства доставки информации. Термин "модулированный сигнал передачи данных" означает сигнал, в котором одну или большее количество его характеристик задают или изменяют таким образом, чтобы закодировать информацию в этом сигнале. В качестве примера, не являющегося ограничивающим признаком, средства связи содержат средства проводной связи, которыми являются, например, проводная сеть или прямое проводное соединение, и средства беспроводной связи, которыми являются, например, средства акустической, радио, инфракрасной связи и другие средства беспроводной связи. Термин "считываемые посредством компьютера носители информации" охватывают собой комбинации любых из вышеупомянутых элементов.
Системная память 1030 содержит компьютерные запоминающие среды в виде энергозависимого запоминающего устройства и/или энергонезависимого запоминающее устройства, которыми являются, например, постоянное запоминающее устройство (ПЗУ) 1031 и оперативное запоминающее устройство (ОЗУ) 1032. В ПЗУ 1031 обычно хранится базовая система ввода-вывода 1033 (BIOS), содержащая основные подпрограммы, которые управляют передачей информации между элементами внутри компьютера 1010, например, во время запуска. В ОЗУ 1032 обычно хранятся данные и/или программные команды, к которым необходимо производить быстрый доступ и/или с которыми в текущий момент времени работает процессор 1020. В качестве примера, не являющегося ограничивающим признаком, на Фиг.10 проиллюстрированы следующие компоненты: операционная система 1034, прикладные программы 1035, другие программные модули 1036 и данные 1037 программ, которые время от времени могут полностью или частично находиться в ОЗУ 1032.
Компьютер 1010 также может содержать и другие сменные/стационарные, энергозависимые/энергонезависимые компьютерные запоминающие среды. Только лишь в качестве примера на Фиг.10 проиллюстрирован накопитель 1041 на жестких дисках, который считывает данные со стационарного энергонезависимого магнитного носителя информации или записывает их на него, накопитель 1051 на магнитных дисках, который считывает данные со сменного энергонезависимого магнитного диска 1052 или записывает их на него, и накопитель 1055 на оптических дисках, который считывает данные со сменного энергонезависимого оптического диска 1056, которым является, например, постоянное запоминающее устройство на компакт-диске (CD-ROM) или иной оптический носитель информации, или записывает их на него. Другими сменными/стационарными энергозависимыми/энергонезависимыми компьютерными запоминающими средами, которые могут входить в состав приведенной в качестве примера вычислительной среды 1000, являются, в том числе, кассеты с магнитной лентой, платы флэш-памяти, универсальные цифровые диски, цифровая видеомагнитофонная лента, твердотельное ОЗУ, твердотельное ПЗУ и т.п., но эти примеры не являются ограничивающим признаком. Накопитель 1041 на жестких дисках обычно соединен с системной шиной 1021 через интерфейс стационарных запоминающих устройств, которым является, например, интерфейс 1040, а накопитель 1051 на магнитных дисках и накопитель 1055 на оптических дисках обычно соединены с системной шиной 1021 через интерфейс сменных запоминающих устройств, которым является, например, интерфейс 1050.
Накопители 1041, 1051, 1055 и связанные с ними компьютерные запоминающие среды, описание которых приведено выше и которые проиллюстрированы на Фиг.10, обеспечивают хранение считываемых посредством компьютера команд, данных, структур данных, программных модулей, программ, программируемых элементов или подпрограмм для компьютерной системы 1010. Например, на Фиг.10 проиллюстрировано, что в накопителе 1041 на жестких дисках хранят операционную систему 1044, прикладные программы 1045, другие программные модули 1046 и данные 1047 программ. Следует заметить, что эти компоненты могут или быть теми же самыми, как и операционная система 1034, прикладные программы 1035, другие программные модули 1036 и данные 1037 программ, или иными. Операционной системе 1044, прикладным программам 1045, другим программным модулям 1046 и данным 1047 программ присвоены различные номера позиций для иллюстрации того, что, как минимум, они представляют собой различные копии операционной системы 1034, прикладных программ 1035, других программных модулей 1036 и данных 1037 программ. Пользователь может вводить команды и информацию в компьютерную систему 1010 при помощи подсоединенных устройств ввода данных, таких как, например, клавиатура 1062 и координатно-указательное устройство 1061, обычно именуемое манипулятором типа "мышь", шаровым манипулятором или сенсорной панелью. Другими подсоединенными устройствами ввода данных (на чертеже не показаны) могут являться, в том числе, микрофон, джойстик, игровая клавишная панель, спутниковая антенна, сканер и т.п. Эти и другие устройства ввода данных часто соединены с процессором 1020 через интерфейс 1060 пользовательских устройств ввода, связанный с системной шиной 1021, но они могут быть подключены посредством другого интерфейса и шин иных структур, например через параллельный порт, через игровой порт или через универсальную последовательную шину (USB). С системной шиной 1021 также соединено видеоконтрольное устройство 1091 или дисплей иного типа через интерфейс, например через видеоинтерфейс 1090. В дополнение к видеоконтрольному устройству 1091 компьютерная система 1010 также может содержать другие периферийные устройства вывода данных, такие как, например, громкоговорители 1097 и принтер 1096, которые могут быть подсоединены через интерфейс 1095 периферийных устройств вывода.
Компьютерная система 1010 может функционировать в сетевом окружении, используя соединительные каналы двусторонней связи с одной или с большим количеством удаленных компьютерных систем, например с удаленной компьютерной системой 1080. Удаленной компьютерной системой 1080 может являться персональный компьютер, портативный компьютер, серверный компьютер, маршрутизатор, сетевой персональный компьютер (ПК), одноранговое устройство или иной узел общей сети, и она обычно содержит многие или все элементы, описание которых было приведено выше применительно к компьютерной системе 1010, несмотря на то, что на Фиг.10 в удаленной компьютерной системе 1080 проиллюстрировано только запоминающее устройство 1081 для хранения данных. Соединительными каналами двусторонней связи, изображенными на Фиг.10, являются, в том числе, локальная сеть (ЛС) 1071 и глобальная сеть (ГС) 1073, но они также могут содержать другие сети. Такие сети являются обычными в офисах, в компьютерных сетях масштаба предприятия, в интрасетях и в сети Интернет.
В том случае, когда компьютерная система 1010 соединена с локальной сетью (ЛС) 1071 с возможностью обмена информацией между ними, то ее соединение с локальной сетью (ЛС) 1071 производят через сетевой интерфейс или адаптер 1070. В том случае, когда компьютерная система 1010 соединена с глобальной сетью (ГС) 1073 с возможностью обмена информацией между ними, то она обычно содержит модем 1072 или иное средство установления канала связи через глобальную сеть (ГС) 1073, которой является, например, сеть Интернет. Модем 1072, который может быть внутренним или внешним, может быть соединен с системной шиной 1021 через интерфейс 1060 пользовательских устройств ввода или иное подходящее средство. В сетевом окружении программные модули, изображенные применительно к компьютерной системе 1010, или их части могут храниться в удаленном запоминающем устройстве 1081 для хранения данных. В качестве примера, не являющегося ограничивающим признаком, на Фиг.10 удаленные прикладные программы 1085 проиллюстрированы как находящиеся в запоминающем устройстве 1081 для хранения данных. Понятно, что показанные на чертеже сетевые соединения приведены лишь в качестве примера и что могут быть использованы другие средства установления канала двусторонней связи между компьютерами.
На Фиг.11 в виде блок-схемы представлен макет документа, содержащий адаптивные стили 1103 и шаблоны 1106 макета, согласно варианту осуществления заявленного предмета изобретения, который приведен в качестве примера. Информационное содержимое 904 документа отформатировано в виде конкретного макета документа с использованием шаблонов 1106 (которые, например, иногда именуют здесь "адаптивными шаблонами 1106"), хранящихся в запоминающем устройстве 908 для шаблонов. Каждый шаблон 1106 несет ответственность за определение макета для одиночной страницы с информационным содержимым в некотором интервале размеров страницы. В варианте осуществления заявленного предмета изобретения, который приведен в качестве примера, шаблон 1106 обеспечивает поддержку протокола, в силу чего может быть автоматически выбрано альтернативное информационное содержимое документа (например, вариант более широкого изображения или рисунок оптимального размера), если это приводит к улучшению всего макета страницы документа. Кроме того, каждый шаблон 1106 разработан таким образом, что адаптируется к различным размерам дисплея, а также к другим типам условий просмотра, таким как, например, увеличение размера шрифта.
В дополнение к этому каждый шаблон 1106 может содержать элементы 1112 макета, взаимосвязи 1115, основанные на ограничениях, и предварительные условия 1109. Элемент 1112 макета представляет собой конкретную область на странице шаблона 1106, в которую может быть помещено информационное содержимое. Взаимосвязи 1115, основанные на ограничениях, которые содержатся в шаблоне 1106, помогают определять взаимосвязи между элементами 1112. Предварительное условие 1109, содержащееся в шаблоне 1106, характеризует пригодность шаблона 1106 для конкретного информационного содержимого документа или для параметров страницы. Более полное описание элементов 1112 макета, взаимосвязей 1115, основанных на ограничениях, и предварительных условий 1109 приведено ниже со ссылкой на Фиг.12.
В одном из вариантов осуществления заявленного предмета изобретения описан макет документа, в котором используют набор шаблонов 1106. Когда информационное содержимое 904 документа применяют к шаблонам 1106, то адаптивный документ 914, основанный на сетке, создают в оптимальном формате. Например, данная система может обеспечивать поддержку широкого диапазона современных стилей макета, основанного на сетке, например варианты оформления, используемые для газет "Нью-Йорк Таймс" (New York Times), Нью-Йоркер (New Yorker), "Вашингтон Пост" (Washington Post) и для журналов "Ньюсуик" (Newsweek) или "Тайм" (Time). Каждый из стилей 1103 макета (который, например, иногда именуют здесь "стилем 1103 адаптивного макета") задан посредством совокупности шаблонов 1106, которые реализуют конкретные характеристики конкретного стиля 1103 макета.
Как проиллюстрировано на чертеже Фиг.11, стиль 1103A адаптивного макета представлен набором шаблонов 1106A1, 1106AN. Многоточие между адаптивным шаблоном "A1", обозначенным номером позиции 1106A1, и адаптивным шаблоном "AN", обозначенным номером позиции 1106AN, иллюстрирует, что в стиле "A" 1103A адаптивного макета может существовать множество адаптивных шаблонов 1106 и, следовательно, стиль "A" 1103A адаптивного макета не ограничен двумя адаптивными шаблонами 1106A1, 1106AN, которые показаны на Фиг.11. Аналогичным образом, многоточие между адаптивным шаблоном "Z1", обозначенным номером позиции 1106Z1, и адаптивным шаблоном "ZТ", обозначенным номером позиции 1106ZN, иллюстрирует, что в стиле "Z" 1103Z адаптивного макета может существовать множество адаптивных шаблонов 1106, и, следовательно, их количество не ограничено этими двумя шаблонами 110Z1, 1106ZN, которые показаны на Фиг.11. Кроме того, один стиль 1103A адаптивного макета может содержать иное количество адаптивных шаблонов 1106, чем другой стиль 1103Z адаптивного макета.
Стили 1103 адаптивного макета хранят в запоминающем устройстве 908 для шаблонов. Каждый адаптивный макет 1103 распознает набор связанных с ним шаблонов 1106. Многоточие между стилем "A" адаптивного макета, обозначенным номером позиции 1103A, и стилем "Z" адаптивного макета, обозначенным номером позиции 1103Z, иллюстрирует, что в запоминающем устройстве 908 для шаблонов может существовать множество стилей 1103 адаптивного макета, и, следовательно, количество стилей адаптивного макета не ограничено двумя стилями 1103A, 1103Z адаптивного макета, которые показаны на Фиг.11. В качестве примера, не являющегося ограничивающим признаком, в заявленном предмете изобретения стили 1103 адаптивного макета и адаптивные шаблоны 1106 могут быть представлены на расширяемом языке гипертекстовой разметки (XML).
На Фиг.12 в виде блок-схемы представлен адаптивный шаблон 1106 согласно варианту осуществления заявленного предмета изобретения, который приведен в качестве примера. Каждый адаптивный шаблон 1106, хранящийся в запоминающем устройстве 908 для шаблонов, может содержать элементы 1112 макета, взаимосвязи 1115, основанные на ограничениях, для определения взаимосвязей между элементами 1112, и предварительные условия 1109, которые характеризуют пригодность шаблона 1106 для конкретного информационного содержимого документа.
Элемент 1112 макета представляет собой конкретную область на странице шаблона 1106, в которую может быть помещено информационное содержимое. Как правило, элементы 1112 в макете документа, основанного на сетке, представляют собой прямоугольные области страницы шаблона 1106. Каждый элемент 1112 макета содержит переменную 1209, характеризующую информационный поток из заданного источника, переменную 1212, характеризующую порядок расположения элементов по оси z, и переменную 1215, характеризующую шаблоны макета. Переменная 1209, характеризующая информационный поток из заданного источника, определяет, какое именно информационное содержимое может использоваться в элементе 1112. В качестве примера, не являющегося ограничивающим признаком, переменная 1209, характеризующая информационный поток из заданного источника, может определять, что в элементе 1112 шаблона 1106 может быть размещено только изображение. В альтернативном варианте осуществления заявленного предмета изобретения множество элементов 1112 используют информационное содержимое из одного и того же потока 1303 информационного содержимого (что описано ниже со ссылкой на Фиг.13). В такой конфигурации задают поток и информационное содержимое потока 1303 информационного содержимого распространяют из одного элемента 1112A1 в следующий элемент 1112A2.
Содержащаяся в элементе 1112 переменная 1212, характеризующая порядок расположения элементов по оси z, позволяет определять место каждого элемента 1112 в порядке расположения элементов 1112 по оси z. Как правило, в макете документа элементы 1112, которые являются более высокими по порядку расположения по оси z, расположены поверх элементов 1112, которые являются более низкими по порядку расположения, следовательно, область, занимаемую элементами 1112, расположенными выше, вычитают из области, занимаемой теми элементами 1112, которые расположены под ними. Переменная 1212, характеризующая порядок расположения элементов по оси z, фактически обеспечивает возможность наличия наложенных друг на друга элементов 1112 или областей в вариантах оформления страниц, основанных на сетке, которые выглядят таким образом, что как будто бы вырезают области других элементов 1112. Например, текст в макете документа может обтекать рисунок. Рисунок имеет более высокий порядок расположения по оси z, чем текст, и, следовательно, рисунок выглядит таким образом, что вырезает часть области, зарезервированной для текста. В макетах документов, основанных на сетке, используют способ "обволакивания" текстом рисунка или изображения.
Переменная 1215, характеризующая шаблоны макета, позволяет каждому элементу 1112 задавать шаблон 1106 макета (или совокупность шаблонов 1106 макета), который может использоваться для размещения элементарных объектов информационного содержимого в макете. Элементарный объект информационного содержимого содержит элемент 1306 информационного содержимого, который состоит из множества потоков 1303 информационного содержимого (например, текста, рисунков или изображений). В частности, элементарный объект информационного содержимого содержит логическую группу информационного содержимого, содержащую один или большее количество элементов 1112 или потоков 1303 информационного содержимого одного или большего количества типов информационного содержимого, все из которых рассматривают как единичный элемент в некотором родительском элементе 1306 информационного содержимого. В качестве примера, не являющегося ограничивающим признаком, элемент 1112 может представлять собой боковое меню, содержащее текст, рисунки и изображения. Посредством переменной 1215, характеризующей шаблоны макета, шаблон 1106 может обеспечивать поддержку полностью рекурсивного макета и, следовательно, может обеспечивать поддержку всей комбинации рисунок/заголовок для рекурсивного встраивания информационного содержимого.
Взаимосвязи 1115, основанные на ограничениях (например, иногда именуемых здесь "ограничениями 1115"), которые содержатся в шаблоне 1106 могут использоваться для, по меньшей мере, частичного определения взаимосвязей между элементами 1112. Размер и расположение каждого элемента 1112 в шаблоне 1106 определяют путем оценки набора взаимозависимых взаимосвязей 1115, основанных на ограничениях, которые при их совместном учете формируют ациклический ориентированный граф. Взаимосвязи 1115, основанные на ограничениях, содержат входные переменные 1218, характеризующие ограничения, и выходные переменные 1221, характеризующие ограничения, значения которых определяются математическим выражением, будучи выраженными через другие переменные 1218, 1221, характеризующих ограничения. Кроме того, взаимосвязи 1115, основанные на ограничениях, содержат внутренние переменные 1224, характеризующие ограничения, значения которых могут использоваться при вычислении значений для выходных переменных 1221, характеризующих ограничения. Для специалиста в данной области техники понятно, что этот тип конфигурации известен как "система односторонних ограничений". Однако в варианте осуществления заявленного предмета изобретения, который приведен в качестве примера, каждый шаблон 1106 программирует двумерные взаимосвязи между элементами 1112 макета в виде ограничений 1115, которые должны быть удовлетворены для оценки конкретного макета.
Входные переменные 1218, характеризующие ограничения, информируют шаблон 1106 о контексте, в котором будет использоваться шаблон 1106. В качестве примера, не являющегося ограничивающим признаком, входные переменные 1218, характеризующие ограничения, могут указывать размеры шаблона 1106 или элемента 1112 в шаблоне 1106 по ширине и высоте. Кроме того, входная переменная 1218, характеризующая ограничения, может содержать пользовательские атрибуты (например, атрибуты, заданные пользователем при помощи средства 910 авторской разработки шаблонов), относящиеся к информационному содержимому документа. В объектах заявленного предмета изобретения система ограничений (на чертеже не показана) может быть представлена посредством совокупности ограничений, которые могут быть использованы в качестве входных переменных 1218, характеризующих ограничения, и выходных переменных 1221, характеризующих ограничения. При наличии пользовательских атрибутов в информационном содержимом 904 документа пользовательские атрибуты могут быть добавлены в качестве дополнительных переменных в системе ограничений. Выходные переменные 1221, характеризующие ограничения, представляют собой различные выходные атрибуты документа, в том числе прямоугольную границу каждого элемента 1112 и количественный показатель шаблона 1106, позволяющий выражать пригодность шаблона 1106 через информационное содержимое, которое должно быть вставлено в шаблон 1106 (что более подробно описано ниже со ссылкой на Фиг.10), но эти примеры не являются ограничивающим признаком.
Предварительные условия 1109, содержащиеся в шаблоне 1106, по меньшей мере частично, характеризуют пригодность шаблона 1106 для конкретного информационного содержимого документа. Каждый шаблон 1106 использует предварительные условия 1109 для выражения пригодности шаблона 1106 при его применении для информационного содержимого документа. Например, шаблон 1106 может быть пригодным в том случае, если шаблон 1106 может быть успешно применен для информационного содержимого документа. Для специалиста в данной области техники понятно, что могут быть использованы различные предварительные условия для определения того, какие шаблоны 1106 являются пригодными, а какие шаблоны 1106 являются непригодными. Система 902 создания адаптивного макета документа, основанного на сетке, использует предварительные условия 1109 во время разбиения на страницы (что более подробно описано ниже со ссылкой на Фиг.19). Предварительные условия 1109 могут содержать одну или большее количество переменных 1203, характеризующих предварительные условия для информационного содержимого, и/или одну или большее количество переменных 1206, характеризующих предварительные условия для значений. Переменная 1203, характеризующая предварительные условия для информационного содержимого, указывает объем информационного содержимого из заданного потока 1303 информационного содержимого, который должен присутствовать для адекватного заполнения шаблона 1106 или элемента 1112 в шаблоне 1106. Переменная 1206, характеризующая предварительные условия для значений, указывает диапазон значений, которые должны принимать переменные 1218, 1221, характеризующие ограничения. В качестве примера, не являющегося ограничивающим признаком, переменная 1203, характеризующая предварительные условия для информационного содержимого, и переменная 1206, характеризующая предварительные условия для значений, могут указывать, что конкретный шаблон 1106 является пригодным, в том случае, если информационное содержимое документа содержит в точности два рисунка, которые могут быть отображены на дисплее, и в том случае, если страница информационного содержимого документа имеет размер в интервале от формата страницы "письмо" (letter) до формата страницы A4.
На Фиг.13 представлена блок-схема информационного содержимого 904 документа, содержащего потоки 1303 информационного содержимого, согласно варианту осуществления заявленного предмета изобретения, который приведен в качестве примера. Информационное содержимое 904 документа представлено в предложенном изобретении в виде набора отдельных потоков 1303 информационного содержимого, каждый из которых содержит информационное содержимое, расположенное последовательно. Потоки 1303 информационного содержимого представляют собой различные, логически независимые части документа, которыми являются, в том числе, основной текст, боковые меню, рисунки, врезки и подписи под фотографиями, но эти примеры не являются ограничивающим признаком. Потоки 1303 информационного содержимого содержат элементы 1306 информационного содержимого, более полное описание которых приведено ниже со ссылкой на Фиг.14. Как показано на чертеже многоточием, информационное содержимое 904 документа не ограничено тем количеством потоков 1303A, 1303B, 1303Z информационного содержимого, которое показано на Фиг.13. Аналогичным образом многоточия иллюстрируют, что поток 1303A информационного содержимого не ограничен тем количеством элементов 1306A1, 1306A2, 1306AN информационного содержимого, которое показано на Фиг.13.
На Фиг.14 представлена блок-схема потока 1303 информационного содержимого, содержащего элементы 1306 информационного содержимого, согласно варианту осуществления заявленного предмета изобретения, который приведен в качестве примера. Как описано выше со ссылкой на Фиг.13, потоки 1303 информационного содержимого содержат элементы 1306 информационного содержимого. Элементами 1306 информационного содержимого являются, в том числе, текст, изображения, звуковая информация, видеоинформация и другие соответствующие типы информационного содержимого, но эти примеры не являются ограничивающим признаком. Каждый элемент 1306 информационного содержимого поставлен в соответствие стандартной разметке (например, посредством расширяемого языка гипертекстовой разметки (XML)) для указания структуры. В дополнение к стандартной разметке каждому элементу 1306 информационного содержимого могут быть присвоены пользовательские атрибуты 1409, которые изменяют способ трактовки элемента 1306 информационного содержимого средством 502 низкого уровня и шаблонами 1106. В качестве примера, не являющегося ограничивающим признаком, элемент 1306 информационного содержимого, представляющий собой изображение, может иметь атрибут 1409, который обозначает важность изображения в макете документа. Соответственно, средство 502 низкого уровня, использующее элемент 1306 информационного содержимого в шаблоне 1106, может проверять значение 1409 атрибута для определения того, насколько большим следует сделать изображение в конечном макете. Многоточие между атрибутом "A1A", обозначенным номером позиции 1409A1A, и атрибутом "A1Z", обозначенным номером позиции 1409A1Z, иллюстрирует, что в элементе "A1" информационного содержимого, который обозначен номером позиции 1306A1, может существовать множество атрибутов 1409, и, следовательно, количество атрибутов элемента "A1" 1306A1 информационного содержимого не ограничено двумя атрибутами 1409A1A, 1409A1Z, показанными на Фиг.14. Аналогичным образом многоточие между атрибутом "ANA", обозначенным номером позиции 1409ANA, и атрибутом "ANZ", обозначенным номером позиции 1409ANZ, иллюстрирует, что в элементе "AN" информационного содержимого, который обозначен номером позиции 1306AN может существовать множество атрибутов 1409, и, следовательно, количество атрибутов потока "AN" информационного содержимого, обозначенного номером позиции 1306AN, не ограничено двумя атрибутами 1409ANA, 1409ANZ, показанными на Фиг.14.
В варианте осуществления заявленного предмета изобретения, который приведен в качестве примера, текстовые элементы 1306A1 информационного содержимого могут содержать идентификаторы стиля, обозначенные номерами позиций 1412A1A, 1412A1Z, для определения стиля текста в информационном содержимом 904 документа. Идентификаторы 1412 стиля обычно представлены на языке таблиц стилей, например на языке каскадных таблиц стилей (CSS) или на расширяемом языке стилей (XSL), но эти примеры не являются ограничивающим признаком. Для специалиста в данной области техники понятно, что язык таблиц стилей предоставляет пользователю возможность определять то, какой внешний вид будут иметь различные текстовые элементы в документе (например, шрифт, стиль шрифта и размер шрифта). Соответственно, идентификаторам 1412 стиля могут быть поставлены в соответствие правила форматирования в отдельном файле таблицы стилей, хранящемся в запоминающем устройстве 906 для таблиц стилей. Многоточие между идентификатором "A1A" стиля, обозначенным номером позиции 1412A1A, и идентификатором "A1Z" стиля, обозначенным номером позиции 1412A1Z, иллюстрирует, что в элементе "A1" информационного содержимого, который обозначен номером позиции 1306A1, может существовать множество идентификаторов 1412 стиля, и, следовательно, количество идентификаторов стиля в элементе "A1" 1306A1 информационного содержимого не ограничено двумя идентификаторами 1412A1A, 1412A1Z стиля, показанными на Фиг.14. Аналогичным образом, многоточие между идентификатором "ANA" стиля, обозначенным номером позиции 1412ANA, и идентификатором "ANZ" стиля, обозначенным номером позиции 1412ANZ, иллюстрирует, что в элементе "AN" информационного содержимого, который обозначен номером позиции 1306AN, может существовать множество идентификаторов 1412 стиля, и, следовательно, количество идентификаторов стиля в элементе "AN" 1306AN информационного содержимого не ограничено двумя идентификаторами 1412ANA, 1412ANZ стиля, показанными на Фиг.14.
Элементы 1306 информационного содержимого могут быть также запрограммированы таким образом, что содержат множество версий 1306A2A, 1306A2B, 1306A2Z любой отдельной части информационного содержимого. Каждая из различных версий 1306A2A, 1306A2B, 1306A2Z элемента информационного содержимого упакована внутри тэга 1406 <multi>. Во время создания макета документа система 902 создания адаптивного макета документа, основанного на сетке, выбирает одну из версий для использования ее при форматировании страницы согласно шаблону 1106. Для содействия системе 902 создания адаптивного макета документа, основанного на сетке, каждый из различных версий 1306A2A, 1306A2B, 1306A2Z элемента информационного содержимого может содержать атрибуты 1409, которые предлагают наиболее подходящее использование каждой конкретной версии 1306A2A, 1306A2B, 1306A2Z элемента информационного содержимого. В качестве примера, не являющегося ограничивающим признаком, первая версия элемента "A2" информационного содержимого, обозначенная номером позиции 1306A2A, может указывать, что первую версию 1306A2A элемента информационного содержимого лучше всего использовать в разделе "аннотация", в то время как вторая версия 1306A2B элемента "A2" информационного содержимого может указывать, что вторую версию 1306A2B элемента информационного содержимого лучше всего использовать в боковом меню. Шаблон 1106 может выбирать подходящую версию 1306A2A, 1306A2B, 1306A2Z элемента информационного содержимого на основании того, каким образом шаблон 1106 намеревается форматировать информационное содержимое документа. Если атрибуты 1409, определяющие различные версии элемента 1306 информационного содержимого, не существуют, то система 902 создания адаптивного макета документа, основанного на сетке, не ограничена в выборе той версии, которая работает наилучшим образом для формата текущей страницы или документа. Многоточие между второй версией 1306A2B элемента "A2" информационного содержимого и n-й версией 1306A2Z элемента "A2" информационного содержимого иллюстрирует, что в тэге 1406 <multi> может существовать множество версий элемента 1306 информационного содержимого и, следовательно, тэг 1406 <multi> не ограничен наличием в нем трех версий 1306A2A, 1306A2B, 1306A2Z элемента информационного содержимого, показанных на Фиг.14.
Потоки 1303A3A, 1303A3B, 1303A3Z информационного содержимого также могут быть введены в виде иерархической структуры в родительский элемент 1306A3 информационного содержимого с использованием тэга <atom> (элементарный объект), который сгруппировывает совокупность потоков 1303A3A, 1303A3B, 1303A3Z информационного содержимого в виде элементарного объекта информационного содержимого в родительском элементе 1306A3 информационного содержимого. В таком случае совокупность потоков 1303A3A, 1303A3B, 1303A3Z информационного содержимого трактуют как одиночный элемент 1306A3 информационного содержимого. Такие элементы документа, как, например, боковое меню, по существу, представлены посредством множества элементов документа (таких как, например, текст, рисунки, подрисуночная подпись и нижний колонтитул). Тэг <atom> позволяет производить обработку множества потоков 1303 информационного содержимого как одного отдельного элемента информационного содержимого для создания макета документа. В качестве примера, не являющегося ограничивающим признаком, тэг <atom> может группировать поток 1303 информационного содержимого, представляющий собой "заголовок", поток 1303 информационного содержимого, представляющий собой "рисунок", поток 1303 информационного содержимого, представляющий собой "подрисуночную подпись", поток 1303 информационного содержимого, представляющий собой "текст описания", и поток 1303 информационного содержимого, представляющий собой "нижний колонтитул", в родительском элементе 1306 информационного содержимого "боковое меню". Многоточие между потоком 1303A3B информационного содержимого и потоком 1303A3Z информационного содержимого иллюстрирует, что в родительском элементе 1306A3 информационного содержимого может существовать множество потоков 1303 информационного содержимого, и, следовательно, количество потоков информационного содержимого в родительском элементе 1306A3 информационного содержимого не ограничено этими тремя потоками 1303A3A, 1303A3B, 1303A3Z информационного содержимого, показанными на Фиг.14.
На чертежах Фиг.15A и Фиг.15Б представлена схема последовательности операций способа 1500 применения информационного содержимого 904 документа к шаблонам 1106 согласно варианту осуществления заявленного предмета изобретения, который приведен в качестве примера. Средство 502 низкого уровня компонует информационное содержимое 904 документа, полученное из средства 602 разбиения на страницы, в соответствии с шаблонами 1106, полученными из запоминающего устройства 908 для шаблонов, и с таблицами стилей, полученными из запоминающего устройства 906 для таблиц стилей. В результате получают совокупность потенциально возможных макетов страницы, которые определяют стиль макета документа.
После того как при операции 1501 начато выполнение способа, средство 502 низкого уровня переходит к выполнению операции 1503, при которой средство 502 низкого уровня определяет, необходимо ли произвести оценку дополнительных шаблонов 1106 с использованием информационного содержимого 904 документа. В исходном состоянии не требуется производить оценку ни одного из шаблонов 1106, хранящихся в запоминающем устройстве 908 для шаблонов. Однако при повторном выполнении операции 1503 средство 502 низкого уровня будет полагать, что в запоминающем устройстве 908 для шаблонов имеются другие шаблоны 1106, до тех пор пока не будут учтены все шаблоны 1106. В альтернативном варианте средство 502 низкого уровня перед выполнением операции 1503 производит оценку всех шаблонов 1106 в структуре данных (которой является, например, массив или вектор), предоставленной средством 602 разбиения на страницы (на чертеже это не показано), вместо оценки всех шаблонов 1106, хранящихся в запоминающем устройстве 908 для шаблонов. Если при операции 1503 средством 502 низкого уровня определено, что оценку каких-либо дополнительных шаблонов 1106 производить не нужно, то средство 502 низкого уровня переходит к выполнению операции 1527, описанной ниже. Однако, если при операции 1503 средством 502 низкого уровня определено, что необходимо произвести оценку дополнительного шаблона 1106, то средство 502 низкого уровня переходит к выполнению операции 1506, при которой производят оценку соответствия предварительных условий 1109 для рассматриваемого в текущий момент времени шаблона 1106 (который, например, также именуют здесь "текущим шаблоном 1106") информационному содержимому 904 документа. Затем выполняют операцию 1509, при которой средство 502 низкого уровня определяет, является ли текущий шаблон 1106 пригодным для рассматриваемого информационного содержимого 904 документа.
Если при операции 1509 средством 502 низкого уровня определено, что текущий шаблон 1106 является непригодным для рассматриваемого информационного содержимого 904 документа, то средство 502 низкого уровня переходит к выполнению операции 1503, описанной выше. Однако, если при операции 1509 средством 502 низкого уровня определено, что текущий шаблон 1106 является пригодным для рассматриваемого информационного содержимого 904 документа, то средство 502 низкого уровня переходит к выполнению операции 1512, при которой средство 502 низкого уровня определяет размер и положение каждого элемента 1112 шаблона 1106 путем задания входных переменных 1218 текущего шаблона и распространения этих значений вперед через граф ограничений для текущего шаблона с использованием простого локального распространения по алгоритму экономного продвижения.
Затем выполняют операцию 1515, при которой средство 502 низкого уровня вычисляет двумерные области страницы макета, который должен быть создан посредством шаблона 1106 и в который будет перемещено информационное содержимое 904 документа. В дополнение к этому средство 502 низкого уровня урезает области в соответствии с наличием любого перекрытия между элементами 1112 или на основании переменных 1212, характеризующих порядок расположения элементов по оси z. Затем выполняют следующую операцию 1518, при которой средство 502 низкого уровня вводит информационное содержимое 904 документа в виде потока в каждую из определенных выше областей. Затем средство 502 низкого уровня переходит к выполнению операции 1521, при которой средство 502 низкого уровня вычисляет количественный показатель шаблона для шаблона 1106 на основании того, насколько хорошо шаблон 1106 соответствует информационному содержимому 904 документа (что более подробно описано ниже со ссылкой на Фиг.10). Затем выполняют следующую операцию 1524, при которой средство 502 низкого уровня добавляет шаблон 1106 в набор или в последовательность пригодных шаблонов 1106. После этого средство 502 низкого уровня переходит к выполнению операции 1503, описанной выше.
Как описано выше, если при операции 1503 средством 502 низкого уровня определено, что оценку каких-либо дополнительных шаблонов 1106 производить не нужно, то средство 502 низкого уровня переходит к выполнению операции 1527, при которой средство 502 низкого уровня определяет, является ли набор пригодных шаблонов 1106 пустым. Если при операции 1527 средством 502 низкого уровня определено, что набор правильных шаблонов 1106 является пустым, то затем средство 502 низкого уровня переходит к выполнению операции 1536, при которой средство 502 низкого уровня создает сообщение об ошибке, указывающее что для информационного содержимого 904 документа не существует пригодного набора шаблонов 1106. После этого переходят к операции 1533, при которой средство 502 низкого уровня завершает работу в соответствии со способом 1500. Однако, если при операции 1527 средством 502 низкого уровня определено, что набор пригодных шаблонов 1106 существует, то средство 502 низкого уровня переходит к выполнению операции 1530, при которой средство 502 низкого уровня передает набор пригодных шаблонов 1106 и соответствующие количественные показатели в средство 602 разбиения на страницы. После этого переходят к операции 1533, при которой средство 502 низкого уровня завершает работу в соответствии со способом 1500.
На чертежах Фиг.16A - Фиг.16В представлена схема последовательности операций способа 1600 потокового введения информационного содержимого в элементы 1112, имеющиеся в макете документа, согласно варианту осуществления заявленного предмета изобретения, который приведен в качестве примера. Средство 502 низкого уровня управляет вводом потока информационного содержимого в области элемента в соответствии с типом информационного содержимого. Типом информационного содержимого обычно являются, в том числе, изображения, текст, внедренные рисунки и аудиовизуальные средства информации, но эти примеры не являются ограничивающим признаком.
После того как при операции 1601 начато выполнение способа, средство 502 низкого уровня переходит к выполнению операции 1603, при которой средство 502 низкого уровня определяет, является ли тип информационного содержимого изображением. Если при операции 1603 средством 502 низкого уровня определено, что типом информационного содержимого является изображение, то средство 502 низкого уровня переходит к выполнению операции 1606, при которой средство 502 низкого уровня масштабирует изображение таким образом, чтобы по своему размеру оно соответствовало области в пределах границ соответствующего элемента 1112. Затем выполняют операцию 1609, при которой средство 502 низкого уровня выводит на экран дисплея изображение, которое было скадрировано в соответствии с размером области, занимаемой информационным содержимым элемента 1112. После этого переходят к операции 1618, при которой средство 502 низкого уровня завершает работу в соответствии со способом 1600.
Однако если при операции 1603 средством 502 низкого уровня определено, что типом информационного содержимого не является изображение, то средство 502 низкого уровня переходит к выполнению операции 1612, при которой средство 502 низкого уровня определяет, является ли тип информационного содержимого текстом. Если при операции 1612 средством 502 низкого уровня определено, что типом информационного содержимого является текст, то средство 502 низкого уровня переходит к выполнению операции 1615, при которой средство 502 низкого уровня позволяет произвести потоковый ввод текста в область в пределах границ элемента 1112 с использованием алгоритма разбивки строк, например алгоритма Кнута (Knuth) и Пласса (Plass) для оптимальной разбивки строк, но этот пример не является ограничивающим признаком. После этого переходят к операции 1618, при которой средство 502 низкого уровня завершает работу в соответствии со способом 1600.
Однако если при операции 1612 средством 502 низкого уровня определено, что типом информационного содержимого не является текст, то средство 502 низкого уровня переходит к выполнению операции 1621, при которой средство 502 низкого уровня определяет, является ли тип информационного содержимого внедренным рисунком (например, рисунками, которые встречаются в потоке текста). Если при операции 1621 средством 502 низкого уровня определено, что типом информационного содержимого является внедренный рисунок, то средство 502 низкого уровня переходит к выполнению операции 1624, при которой средство 502 низкого уровня определяет, имеется ли в области в пределах границ элемента 1112 пространство для отображения рисунка. Если при операции 1624 средством 502 низкого уровня определено, что в области в пределах границ элемента 1112 имеется пространство для отображения рисунка, то средство 502 низкого уровня переходит к выполнению операции 1630, при которой средство 502 низкого уровня помещает рисунок в заданное исходное положении и изменяет размер рисунка таким образом, чтобы он заполнял собой всю колонку элемента 1112. После этого переходят к операции 1633, при которой средство 502 низкого уровня завершает работу в соответствии со способом 1600. В противном случае, если при операции 1624 средством 502 низкого уровня определено, что область в пределах границ элемента 1112 имеет недостаточный размер для отображения рисунка, то средство 502 низкого уровня переходит к выполнению операции 1627, при которой средство 502 низкого уровня отображает рисунок в следующем элементе 1112 потока и изменяет размер рисунка таким образом, чтобы он заполнял собой всю колонку следующего элемента 1112. После этого переходят к операции 1633, при которой средство 502 низкого уровня завершает работу в соответствии со способом 1600.
Однако, если при операции 1621 средством 502 низкого уровня определено, что типом информационного содержимого не является внедренный рисунок, то средство 502 низкого уровня переходит к выполнению операции 1636, при которой средство 502 низкого уровня определяет, является ли тип информационного содержимого аудиовизуальной информацией. Если при операции 1636 средством 502 низкого уровня определено, что типом информационного содержимого является аудиовизуальная информация, то средство 502 низкого уровня переходит к выполнению операции 1642, при которой средство 502 низкого уровня внедряет этот тип аудиовизуальной информации в указанное исходное положение. После этого переходят к операции 1645, при которой средство 502 низкого уровня завершает работу в соответствии со способом 1600. В противном случае, если при операции 1636 средством 502 низкого уровня определено, что типом информационного содержимого не является аудиовизуальная информация, то средство 502 низкого уровня переходит к выполнению операции 1639, при которой средство 502 низкого уровня осуществляет генерацию сообщения об ошибке, указывающего, что тип информационного содержимого является недопустимым. После этого переходят к операции 1645, при которой средство 502 низкого уровня завершает работу в соответствии со способом 1600.
На чертежах Фиг.17A - Фиг.17В представлена схема последовательности операций способа 1700 самоустановки размеров элементов 1112 в макете документа согласно варианту осуществления заявленного предмета изобретения, который приведен в качестве примера. Средство 502 низкого уровня обеспечивает поддержку элементов 1112, которые автоматически регулируют свою высоту для соответствия информационному содержимому 904 документа. Автоматическое изменение размера элементов 1112 зависит от типа информационного содержимого.
После того как при операции 1701 начато выполнение способа, средство 502 низкого уровня переходит к выполнению операции 1703, при которой средство 502 низкого уровня определяет, является ли элемент 1112 элементом, представляющим собой изображение. Если при операции 1703 средством 502 низкого уровня определено, что элементом 1112 является элемент, представляющий собой изображение, то средство 502 низкого уровня переходит к выполнению операции 1706, при которой средство 502 низкого уровня задает переменные 1218, 1221, характеризующие ограничения, которые связаны с элементом 1112, предоставляя для элемента 1112 сведения о размерах элемента изображения. Затем выполняют следующую операцию 1709, при которой средство 502 низкого уровня вычисляет отношение ширины изображения к его высоте, исходя из размеров элемента изображения, для определения соответствующей высоты и ширины элемента 1112. После этого переходят к операции 1712, при которой средство 502 низкого уровня завершает работу в соответствии со способом 1700.
Однако если при операции 1703 средством 502 низкого уровня определено, что элемент 1112 не является элементом, представляющим собой изображение, то средство 502 низкого уровня переходит к выполнению операции 1715, при которой средство 502 низкого уровня определяет, является ли элемент 1112 элементом, представляющим собой текст. Если при операции 1715 средством 502 низкого уровня определено, что элемент 1112 является элементом, представляющим собой текст, то средство 502 низкого уровня переходит к выполнению операции 1718, при которой средство 502 низкого уровня определяет, содержит ли элемент 1112 заранее заданную метку или заранее заданный атрибут, которым является, например, тэг "изменить размер по содержимому" ("resize-to-content"), но этот пример не является ограничивающим признаком. Если при операции 1718 средством 502 низкого уровня определено, что элемент 1112 не помечен тэгом "изменить размер по содержимому", то переходят к операции 1712, при которой средство 502 низкого уровня завершает работу в соответствии со способом 1700, поскольку изменение размера элемента 1112 не требуется.
Если же при операции 1718 средством 502 низкого уровня определено, что элемент 1112 помечен тэгом "изменить размер по содержимому", то средство 502 низкого уровня переходит к выполнению операции 1721, при которой средство 502 низкого уровня устанавливает значение переменной "высота" элемента 1112, равное максимальному допустимому значению. Затем выполняют операцию 1724, при которой средство 502 низкого уровня определяет, является ли элемент 1112 полностью заполненным текстом. Если при операции 1724 средством 502 низкого уровня определено, что элемент 1112 полностью заполнен текстом, то переходят к операции 1730, при которой средство 502 низкого уровня завершает работу в соответствии со способом 1700, поскольку изменение размера элемента 1112 не требуется. Однако если при операции 1724 средством 502 низкого уровня определено, что элемент 1112 не является полностью заполненным текстом, то средство 502 низкого уровня переходит к выполнению операции 1727, при которой средство 502 низкого уровня устанавливает исходное значение высоты элемента 1112, равное фактической высоте текста. После этого переходят к операции 1730, при которой средство 502 низкого уровня завершает работу в соответствии со способом 1700.
Однако если при операции 1715 средством 502 низкого уровня определено, что элемент 1112 не является элементом, представляющим собой текст, то средство 502 низкого уровня переходит к выполнению операции 1727, при которой средство 502 низкого уровня определяет, является ли элемент 1112 составным элементом, требующим наличия шаблонов 1106 для создания макета. Элементарный объект информационного содержимого представляет собой две или большее количество частей информационного содержимого, которые все вместе считают единичным элементарным объектом. В качестве примера, не являющегося ограничивающим признаком, изображение и соответствующая подрисуночная подпись концептуально сгруппированы друг с другом как единый "рисунок с подрисуночной подписью". Соответственно, составной элемент представляет собой такой элемент в шаблоне, который может вмещать элементарный объект информационного содержимого. Для создания макета отдельных частей информационного подсодержимого в элементарном объекте информационного содержимого составной элемент указывает отдельный подшаблон, который может быть использован для компоновки отдельных подчастей элементарного объекта информационного содержимого на странице макета. Если при операции 1727 средством 502 низкого уровня определено, что элемент 1112 не является составным элементом, требующим наличия шаблонов 1106 для макета, то переходят к операции 1730, при которой средство 502 низкого уровня завершает работу в соответствии со способом 1700, поскольку изменение размера не требуется.
Однако если при операции 1727 средством 502 низкого уровня определено, что элементом 1112 является составной элемент, требующий наличия шаблонов 1106 для макета, то средство 502 низкого уровня переходит к выполнению операции 1733, при которой средство 502 низкого уровня использует необходимые шаблоны 1106 для размещения элемента 1112 в макете. Составной элемент может содержать множество элементов 1306 информационного содержимого или множество потоков 1303 информационного содержимого, например элементарный объект 1306A3 информационного содержимого, но этот пример не являются ограничивающим признаком. Затем средство 502 низкого уровня переходит к выполнению операции 1736, при которой средство 502 низкого уровня использует специальную выходную переменную 1221 для установки окончательной высоты элемента 1112 в шаблоне 1106. После этого переходят к операции 1739, при которой средство 502 низкого уровня завершает работу в соответствии со способом 1700.
На Фиг.18 представлена схема последовательности операций способа 1800 оценки количественного показателя шаблона 1106 на основании того, насколько хорошо шаблон 1106 соответствует информационному содержимому 904 документа, согласно варианту осуществления заявленного предмета изобретения, который приведен в качестве примера. Для каждого шаблона 1106, используемого для создания макета информационного содержимого 904 документа, средство 502 низкого уровня вычисляет количественный показатель на основании того, насколько хорошо шаблон 1106 соответствует информационному содержимому. После того как средством 502 низкого уровня вычислены количественные показатели для всех потенциально возможных шаблонов 1106, средство 502 низкого уровня передает сведения о количественных показателях обратно в средство 602 разбиения на страницы, которое может использовать эти количественные показатели наряду с количественными показателями шаблона для предыдущих и последующих страниц информационного содержимого для вычисления оптимальной последовательности шаблонов 1106, которую следует использовать для разбиения на страницы всего информационного содержимого 904 документа.
После того как при операции 1801 начато выполнение способа, средство 502 низкого уровня переходит к выполнению операции 1803, при которой средство 502 низкого уровня оценивает выходную переменную 1221, характеризующую ограничения, которая содержит количественный показатель шаблона 1106. Затем средство 502 низкого уровня переходит к выполнению операции 1806, при которой средство 502 низкого уровня определяет количество висячих и изолированных строк в макете страницы после применения шаблона 1106. Затем выполняют операцию 1809, при которой средство 502 низкого уровня вычисляет количественный показатель того, насколько хорошо шаблон 1106 соответствует информационному содержимому, в силу чего количественный показатель качества основан на переменной template.score ("количественный показатель шаблона") и на количестве изолированных и висячих строк в макете страницы. Средство 502 низкого уровня переходит к выполнению операции 1812, при которой средство 502 низкого уровня предоставляет в средство 602 разбиения на страницы вычисленный количественный показатель шаблона 1106, который средство 602 разбиения на страницы использует при вычислении им окончательной последовательности шаблонов 1106. После этого переходят к операции 1815, при которой средство 602 разбиения на страницы завершает работу в соответствии со способом 1800.
Средство 602 разбиения на страницы создает последовательность шаблонов 1106 и указывает соответствие информационного содержимого 904 документа каждому шаблону 1106 в последовательности, которую средство 502 низкого уровня может использовать для отображения всего документа на дисплее. В одном из вариантов осуществления заявленного предмета изобретения система 902 создания адаптивного документа, основанного на сетке, использует множество алгоритмов разбиения на страницы для различных вариантов применения. Соответственно, система 902 создания адаптивного документа, основанного на сетке, может содержать первое средство 602 разбиения на страницы, которое быстро производит правильное разбиение на страницы для интерактивной адаптации, и второе средство 602 разбиения на страницы, которое производит оптимальное разбиение на страницы, но его работа требует большего количества времени. Первое средство 602 разбиения на страницы может использовать алгоритм "экономного продвижения", в котором всегда используют первый шаблон 1106 для каждой страницы, принимающей информационное содержимое в текущем месте в документе, или в котором в каждом месте в последовательности может быть выбран один наилучший шаблон 1106 без оценки глобальных последствий (например, глобальной оценки количественного показателя) выбора. Второе средство 602 разбиения на страницы может использовать, в том числе, следующие способы: создание приближенно оптимального разбиения на страницы, которое является лучшим, чем разбиение на страницы согласно алгоритму "экономного продвижения", но не гарантированно оптимальным путем, выполнения последовательности более мелких процессов оптимизации в меньших участках (например, в "окнах") информационного содержимого 904 документа, но этот пример не является ограничивающим признаком.
На чертежах Фиг.19A - Фиг.19Г представлена схема последовательности операций способа 1900 оптимального разбиения информационного содержимого 904 документа на страницы с созданием адаптивного макета документа, основанного на сетке, согласно варианту осуществления заявленного предмета изобретения, который приведен в качестве примера. Чтобы найти оптимальное разбиение на страницы, средство 602 разбиения на страницы должно определить меру эффективности каждой последовательности пригодных шаблонов 1106, в силу чего эту меру доводят до максимума путем систематического или эвристического поиска или путем оптимизации ограничений. Средство 602 разбиения на страницы с оптимизацией создает последовательность шаблонов 1106 и устанавливает соответствие каждого шаблона 1106 информационному содержимому, что максимизирует некоторую меру качества. В качестве примера, не являющегося ограничивающим признаком, одна такая мера содержит показатель "общее количество перелистываемых страниц" ("total page turns"), который подсчитывает общее количество случаев перелистывания страниц, которое потребовалось бы не только для прочтения текста, но и для обращения к любому дополнительному информационному содержимому, на которое имеются ссылки в тексте. В варианте осуществления заявленного предмета изобретения, который приведен в качестве примера, показатель, используемый для количественной оценки эффективности каждой последовательности пригодных шаблонов 1106, включает в себя использование значения общего количества перелистываемых страниц вместе с другими критериями, которые отражают качество внешнего вида страницы (например, наличие пустых мест, внешний вид с эстетической точки зрения, удобство использования в работе или удобочитаемость).
Так как основной алгоритм динамического программирования, используемый для оценки подзадач (например, новых шаблонов 1106 в последовательности), основан на ретроспективном взгляде на оценку количественного показателя последовательности подзадач, то в объекте заявленного предмета изобретения алгоритм реструктуризирован таким образом, чтобы оценка выполнялась только для пригодных страниц путем вычисления всех возможных конечных точек текущей подзадачи (например, с упреждением). Объект заявленного предмета изобретения обеспечивает то, что при рассмотрении новой подзадачи все подзадачи, которые возможно могут предшествовать ей в решении, уже будут решены к этому моменту времени и что в таблице данных будет существовать запись, указывающая назад на оптимального предшественника. Следовательно, если в тот момент, когда приступают к решению подзадачи, для нее не существует какой-либо записи в таблице данных, то эта подзадача может быть пропущена без вычисления.
Кроме того, вариант осуществления заявленного предмета изобретения может легко быть видоизменен таким образом, что обеспечивает обработку дополнительных потоков 1303 информационного содержимого путем добавления дополнительных размеров в таблицу данных и дополнительных вложенных циклов в алгоритм. Обработка дополнительных потоков 1303 информационного содержимого, не являющихся обязательными, также может быть осуществлена без дополнительного программирования при наличии шаблонов 1106, обеспечивающих отображение на дисплее информационного содержимого из дополнительных потоков 1303 информационного содержимого. Средство 602 разбиения на страницы включает в состав документа элементы 1306 информационного содержимого из дополнительных потоков 1303 информационного содержимого всякий раз, когда они улучшают оптимальное разбиение на страницы. Такие дополнительные потоки 1303 информационного содержимого и шаблоны 1106, в которых используют дополнительные потоки 1303 информационного содержимого, могут значительно улучшать качество разбиения на страницы.
Эффективность различных объектов заявленного предмета изобретения еще больше повышается за счет удаления из таблицы данных тех частных решений (например, подзадач, приемлемость которых уже была подтверждена), количественный показатель качества которых является худшим, чем некоторое пороговое значение (которое, например, иногда именуют здесь "пороговым значением отсечения решений"). Поскольку существует относительно небольшое количество приемлемых решений, то это отсечение решений помогает сужать перечень последовательностей подзадач до самого оптимального. В качестве примера, не являющегося ограничивающим признаком, консервативная стратегия отсечения решений включает в себя использование в качестве порогового значения отсечения решений количественного показателя качества, полученного в результате "первого подходящего" решения (например, решения согласно алгоритму "экономного продвижения"). Использование такой консервативной стратегии отсечения решений обычно обеспечивает существенное ускорение процесса разбиения на страницы и гарантирует, что решение всегда будет найдено. В альтернативном варианте в оптимистической стратегии отсечения решений выбирают приблизительное, почти идеальное пороговое значение и итерационным способом изменяют пороговое значение в том случае, если решение не найдено. Когда в запоминающем устройстве 908 для шаблонов существует значительное количество шаблонов 1106, то вероятность существования почти идеального решения является высокой и, следовательно, оптимистическая стратегия отсечения решений становится более эффективной.
Записи в таблице данных отображают места расположения в документе (например, конечные точки страницы, обработку которой выполняют в текущий момент времени). Кроме того, запись в таблице данных отображает наилучший вариант разбиения на страницы, найденный до настоящего времени, которое заканчивается в заданном месте в различных потоках 1303 информационного содержимого документа, которые могут быть определены значением индекса записи в таблице. Запись в таблице содержит данные о месте расположения в таблице (и, следовательно, о месте расположения в документе) предыдущей страницы в оптимальном частном решении, заканчивающемся в этом месте, и о шаблоне 1106, используемом для визуализации последней страницы (например, страницы между предыдущей записью в таблице и той записью в таблице, обработку которой выполняют в текущий момент времени), но этот пример не является ограничивающим признаком.
Самый внешний цикл процесса, используемого в вариантах осуществления заявленного предмета изобретения, проходит через таблицу, при этом в ходе этого процесса производят оценку все большего и большего количества (частных) решений или подзадач. Каждая итерация цикла вызывает выполнение поиска следующего набора страниц (например, страницей является шаблон 1106 и выбранное информационное содержимое; для одного шаблона 1106 может существовать множество результатов с различными объемами текста, с различными версиями изображения и т.д.) средством 502 низкого уровня, который может следовать за текущей рассматриваемой конечной точкой. Результирующий набор страниц дает набор конечных точек для следующей страницы, которые затем средство 602 разбиения на страницы распространяет вперед в таблицу данных (например, заменяя существующие записи в том случае, если новая запись имеет лучший глобальный количественный показатель).
В качестве примера, не являющегося ограничивающим признаком, описанный способ 1900, изображенный на чертежах Фиг.19A - Фиг.19Г может быть представлен посредством псевдокода, предоставленного в Таблице 1.
Таблица 1
Initialize Endpoint Table (place one entry at location (0,0) for beginning of document) ;
FOR each table location DO:
IF location contains valid entry THEN:
CALL LOW LEVEL ENGINE to generate list of endpoints for pages starting at current table location;
FOR each endpoint returned (new) DO:
Calculate global score for sequence ending with new endpoint;
IF score is better than Pruning Threshold
THEN:
IF new endpoint has no entry in table THEN:
Add entry for new endpoint containing score, template, and back pointer to location;
ELSE (new endpoint does have previous entry in table) THEN:
Compare score with existing entry's score in table;
IF score is better than existing entry's score THEN:
Replace entry in table with new score, template, and back pointer to location;
ENDIF;
ENDIF;
ENDFOR;
ENDIF;
ENDFOR;
Trace back pointers from last table entry to obtain template sequence and content mapping;
END PAGINATE;
Таблица 1. (Вариант на русском языке)
Инициализировать таблицу конечных точек (разместить одну ячейку таблицы в точку с координатами (0,0) для начала документа);
FOR каждой позиции в таблице DO:
IF позиция содержит допустимую запись THEN
ВЫЗОВ СРЕДСТВА НИЗКОГО УРОВНЯ, чтобы оно осуществило генерацию перечня конечных точек для страниц, начинающихся в текущем месте таблицы;
FOR каждой полученной (новой) конечной точки DO:
Вычислить глобальный количественный показатель для последовательности, заканчивающейся новой конечной точкой;
IF количественный показатель является лучшим, чем пороговое значение отсечения решений, THEN:
IF для новой конечной точки отсутствует запись в таблице THEN:
Добавить для новой конечной точки запись, содержащую количественный показатель, шаблон и обратный указатель на местоположение;
ELSE (для новой конечной точки имеется предыдущая запись в таблице) THEN:
Сравнить количественный показатель с количественным показателем существующей записи в таблице;
IF количественный показатель является лучшим, чем
Заменить запись в таблице новым количественным показателем, шаблоном и обратным указателем на местоположение;
ENDIF;
ENDIF;
ENDIF;
ENDFOR;
ENDIF;
ENDFOR;
Отследить обратные указатели из последнего элемента таблицы для получения последовательности шаблонов и для установления соответствия информационного содержимого;
END РАЗБИЕНИЕ НА СТРАНИЦЫ;
После того как при операции 1901 начато выполнение способа, средство 602 разбиения на страницы переходит к выполнению операции 1903, при которой средство 602 разбиения на страницы устанавливает порог отсечения решений для оптимального разбиения на страницы. Для специалиста в данной области техники понятно, что пороговое значение может быть определено различными способами, в том числе способами, описанными выше.
Затем выполняют следующую операцию 1906, при которой средство 602 разбиения на страницы инициализирует пустую таблицу данных путем задания одной конечной точки, представляющей собой начало первой страницы документа (например, путем размещения одной записи в позиции (0, 0) для отображения начала документа). Затем средство 602 разбиения на страницы переходит к выполнению операции 1909, при которой средство 602 разбиения на страницы определяет, необходимо ли произвести оценку каких-либо ячеек в таблице. Если при операции 1909 средством 602 разбиения на страницы определено, что оценку каких-либо ячеек в таблице производить не нужно, то средство 602 разбиения на страницы переходит к выполнению операции 1921, при которой средство 602 разбиения на страницы отслеживает обратные указатели из последней записи в таблице для получения оптимальной последовательности шаблонов 1106 и для установления соответствия информационного содержимого. После этого переходят к операции 1901, при которой средство 602 разбиения на страницы завершает работу в соответствии со способом 1900.
Однако, если при операции 1909 средством 602 разбиения на страницы определено, что необходимо произвести оценку ячеек в таблице, затем средство 602 разбиения на страницы переходит к выполнению операции 1912, при которой средство 602 разбиения на страницы определяет, содержит ли текущая ячейка таблицы допустимую запись. Средство разбиения на страницы выбирает текущую запись из набора не подвергнутых оценке записей таблицы, для которых все предшествующие записи в таблице уже были подвергнуты оценке. Если при операции 1912 средством 602 разбиения на страницы определено, что в текущей записи из таблицы отсутствует допустимая запись, то средство 602 разбиения на страницы помечает эту запись как оцененную и переходит к выполнению операции 1909, которая описана выше. В противном случае, если при операции 1912 средством 602 разбиения на страницы определено, что в текущей записи из таблицы имеется допустимая запись (например, приемлемая запись, отображающая шаблоны, которые могут быть успешно применены для информационного содержимого документа), то средство 602 разбиения на страницы переходит к выполнению операции 1915, при которой средство 602 разбиения на страницы выдает в средство 502 низкого уровня запрос на генерацию перечня конечных точек для страниц, начинающихся в текущем месте таблицы.
Как правило, путем вызова программного модуля, средство 502 низкого уровня применяет каждый из шаблонов 1106, хранящихся в запоминающем устройстве 908 для шаблонов, для необработанной части информационного содержимого 904 документа для определения того, какие именно шаблоны 1106 являются пригодными шаблонами 1106. Если ни один из шаблонов 1106 не может быть использован, то после текущего места в таблице не может следовать ни один из шаблонов 1106 и, следовательно, текущую запись в таблице не следует учитывать в дальнейшем. Когда средством 502 низкого уровня определено, что шаблон 1106 может быть применен для текущего местоположения (например, он вмещает информационное содержимое, начиная с текущего места таблицы), то средство 502 низкого уровня применяет шаблон к информационному содержимому для определения конечной точки и количественного показателя результирующей страницы и включает эту конечную точку в состав перечня конечных точек, возвращенного в средство 602 разбиения на страницы, которое может определить соответствующий глобальный количественный показатель, связанный с новой последовательностью шаблонов 1106.
Затем средство 602 разбиения на страницы переходит к выполнению операции 1918, при которой средство 602 разбиения на страницы определяет, необходимо ли производить оценку каких-либо конечных точек, полученных в результате выполнения операции 1915 (например, имеется ли вычисленный глобальный количественный показатель для конечной точки). Если при операции 1918 средством 602 разбиения на страницы определено, что оценку каких-либо конечных точек производить не нужно, то средство 602 разбиения на страницы переходит к выполнению операции 1909, описание которой приведено выше. Однако если при операции 1918 средством 602 разбиения на страницы определено, что необходимо произвести оценку конечных точек, то средство 602 разбиения на страницы переходит к выполнению операции 1927, при которой средство 602 разбиения на страницы вычисляет глобальный количественный показатель для последовательности, заканчивающейся новой конечной точкой. Затем средство 602 разбиения на страницы переходит к выполнению операции 1930, при которой средство 602 разбиения на страницы определяет, является ли вычисленный глобальный количественный показатель лучшим, чем заранее заданное пороговое значение отсечения решений. Если при операции 1930 средством 602 разбиения на страницы определено, что вычисленный глобальный количественный показатель не является лучшим, чем заранее заданное пороговое значение отсечения решений, то средство 602 разбиения на страницы переходит к выполнению операции 1918, которая описана выше.
Однако если при операции 1930 средством 602 разбиения на страницы определено, что вычисленный глобальный количественный показатель является лучшим, чем заранее заданное пороговое значение отсечения решений (например, большим, чем это значение), то средство 602 разбиения на страницы переходит к выполнению операции 1933, при которой средство 602 разбиения на страницы определяет, имеется ли запись в таблице данных для новой конечной точки. Если при операции 1933 средством 602 разбиения на страницы определено, что запись в таблице данных для новой конечной точки отсутствует, то средство 602 разбиения на страницы переходит к выполнению операции 1936, при которой средство 602 разбиения на страницы добавляет в таблицу запись для новой конечной точки, содержащую вычисленный глобальный количественный показатель, текущий шаблон 1106 и обратный указатель на текущее местоположение. Затем средство 602 разбиения на страницы переходит к выполнению операции 1918, описание которой приведено выше.
В противном случае, если при операции 1933 средством 602 разбиения на страницы определено, что в таблице данных действительно имеется запись для новой конечной точки, то средство 602 разбиения на страницы переходит к выполнению операции 1939, при которой средство 602 разбиения на страницы определяет, является ли вычисленный глобальный количественный показатель лучшим, чем количественный показатель, хранящийся в таблице данных. Если при операции 1939 средством 602 разбиения на страницы определено, что вычисленный глобальный количественный показатель не является лучшим, чем количественный показатель, хранящийся в таблице данных, то средство 602 разбиения на страницы переходит к выполнению операции 1918, описание которой приведено выше.
Однако, если при операции 1939 средством 602 разбиения на страницы определено, что вычисленный глобальный количественный показатель является лучшим, чем количественный показатель, хранящийся в таблице данных, то средство 602 разбиения на страницы переходит к выполнению операции 1942, при которой средство 602 разбиения на страницы заменяет запись, хранящуюся в таблице данных, новой конечной точкой, вычисленным глобальным количественным показателем, текущим шаблоном 1106 и обратным указателем на текущее местоположение. Затем средство 602 разбиения на страницы переходит к выполнению операции 1918, описание которой приведено выше.
Теперь приведена ссылка на чертеж Фиг.20, на котором проиллюстрирована блок-схема приведенной в качестве примера компьютерной системы компиляции, способной функционировать таким образом, что она обеспечивает реализацию раскрытой архитектуры. Система 2000 содержит одного клиента 2002 или большее количество клиентов 2002. Клиентом (клиентами) 2002 может (могут) являться аппаратные средства и/или программное обеспечение (например, потоки выполняемых задач, процессы, вычислительные устройства). Клиент (клиенты) 2002, например, может (могут) содержать файлы (файлы) "cookie" и/или соответствующую контекстную информацию с использованием признаков заявленного предмета изобретения.
Система 2000 также содержит один сервер 2004 или большее количество серверов 2004. Сервером (серверами) 2004 также может (могут) являться аппаратные средства и/или программное обеспечение (например, потоки выполняемых задач, процессы, вычислительные устройства). Например, серверы 2004 могут содержать потоки выполняемых задач для выполнения преобразования с использованием признаков заявленного предмета изобретения. Один из возможных вариантов обмена информацией между клиентом 2002 и сервером 2004 может быть реализован в виде обмена пакетами данных, приспособленными для передачи между двумя или большим количеством компьютерных процессов. Например, пакет данных может содержать файлы "cookie" и/или соответствующую контекстную информацию. Система 2000 содержит инфраструктуру 2006 связи (например, глобальную сеть связи, которой является, например, сеть Интернет), которая может быть использована для облегчения обмена информацией между клиентом (клиентами) 2002 и сервером (серверами) 2004.
Обмен информацией может быть обеспечен посредством проводной (в том числе, оптоволоконной) и/или беспроводной технологии. Клиент (клиенты) 2002 поддерживает (поддерживают) оперативную связь с одним или с большим количеством клиентских хранилищ 2008 данных, которые могут быть использованы для хранения информации (например, файла (файлов) "cookie" и/или соответствующей контекстной информации) в том месте, где расположен клиент (расположены клиенты) 2002. Аналогичным образом сервер (серверы) 2004 поддерживает (поддерживают) оперативную связь с одним или с большим количеством серверных хранилищ 2010 данных, которые могут быть использованы для хранения информации в том месте, где расположены серверы 2004.
Приведенное выше описание содержит примеры заявленного предмета изобретения. Само собой разумеется, что невозможно описать каждую мыслимую комбинацию компонентов или методологий для целей описания заявленного предмета изобретения, но для обычного специалиста в данной области техники понятно, что возможны многие дополнительные комбинации и перестановки в заявленном предмете изобретения. Соответственно, подразумевают, что заявленный предмет изобретения охватывает собой все такие изменения, модификации и видоизменения, не выходящие за пределы сущности и объема прилагаемой формулы изобретения. Кроме того, подразумевают, что в тех случаях, когда в подробном описании или в формуле изобретения использован термин "включает в себя", этот термин является инклюзивным, аналогичным термину "содержащий", подобно тому, как термин "содержащий" интерпретируют при его использовании в качестве промежуточного слова в пункте формулы изобретения.
Изобретение относится к системам создания макета документа. Технический результат заключается в создании архитектуры, используемой для формирования высококачественного документа, который представляет собой документ, имеющий внешний вид, при котором в документе отображают информационное содержимое заданного типа с заданным размером отображаемого документа. В этой архитектуре могут быть использованы шаблоны на языке высокого уровня, которые в широких пределах определяют ограничения макета для адаптации информационного содержимого к множеству размеров и размерностей с широким многообразием информационного содержимого в широком разнообразии форматов. Кроме того, описания высококачественных документов на языке высокого уровня могут быть преобразованы в ограничения низкого уровня для использования в системе создания адаптивных макетов документов, основанных на сетке, что приводит к резкому сокращению количества шаблонов, требуемых для этой системы, одновременно увеличивая функциональные возможности шаблонов и упрощая создание и поддержку шаблонов. 3 н. и 14 з.п. ф-лы, 28 ил.
1. Система, облегчающая адаптацию макета документа, который может быть отображен на дисплее во множестве размеров и размерностей с широким многообразием информационного содержимого, содержащая:
интерфейс, принимающий шаблон, причем этот шаблон содержит высокоуровневое описание ограничений для макета документа, и
предварительные условия для элементов для условного включения по меньшей мере одного элемента в макет документа;
средство создания макета, которое интерпретирует шаблон и определяет местоположение для размещения информационного содержимого автоматически в упомянутый макет на основании по меньшей мере одного или более из следующих факторов: семантического потока, индивидуальности фирменной символики, взаимосвязи изображений и текста, и рекламных тем.
2. Система по п.1, дополнительно содержащая интерфейс пользователя, который облегчает разработку и/или модификацию шаблона посредством параметров ограничений и предоставляет память для сохранения шаблона.
3. Система по п.1, в которой интерфейсом пользователя является графический интерфейс пользователя (GUI).
4. Система по п.1, в которой средство создания макета создает макет на основании шаблона, одного или более типов информационного содержимого, которое должно быть использовано в макете, и размеров визуального отображения макета.
5. Система по п.4, дополнительно содержащая устройство вывода данных, которое обеспечивает визуальное отображение макета, при этом размеры визуального отображения макета основаны на устройстве вывода данных.
6. Система по п.4, в которой размеры визуального отображения макета являются неизвестными при создании шаблона.
7. Система по п.4, в которой упомянутые один или более типов информационного содержимого, которое должно быть использовано в макете, являются неизвестными при создании шаблона.
8. Система по п.1, в которой средство создания макета применяет информационное содержимое к адаптивному макету, основанному на сетке, на основании описания ограничений, при этом средство создания макета определяет, где именно следует расположить информационное содержимое для макета и генерирует описание ограничений, необходимых упомянутому средству для создания макета.
9. Система по п.1, в которой средство создания макета определяет, где именно следует расположить упомянутое информационное содержимое, на основании местоположений, которые удовлетворяют заранее определенным критериям.
10. Система по п.1, в которой макет документа представляет собой многоуровневый макет документа с наличием верхнего уровня и нижнего уровня, при этом средство создания макета определяет, где именно следует расположить упомянутое информационное содержимое в нижнем уровне, на основании положения упомянутого информационного содержимого в верхнем уровне.
11. Система по п.1, в которой информационное содержимое, используемое в макете, является собранным в единое целое из множества источников.
12. Система по п.1, в которой для преобразования информационного содержимого, принятого от источника, из исходного формата в формат, который средство создания макета может использовать для формирования макета, средство создания макета использует расширяемый язык таблиц стилей для преобразований (XSLT).
13. Реализуемый посредством компьютера способ компоновки информационного содержимого для создания макета, содержащий этапы:
выбор шаблона для макета документа, причем шаблон содержит высокоуровневое описание ограничений для макета документа и предварительные условия для элементов для условного включения по меньшей мере одного элемента в макет документа;
определение размера отображения для документа;
прием информационного содержимого для документа;
применение упомянутого шаблона и упомянутого размера отображения для определения доступных местоположений информационного содержимого;
выбор из доступных местоположений местоположения для упомянутого информационного содержимого; и
создание макета для документа путем компоновки информационного содержимого в этом местоположении на основании по меньшей мере одного из следующих факторов: семантического потока, индивидуальности фирменной символики, взаимосвязи изображений и текста, и рекламных тем.
14. Способ по п.13, дополнительно содержащий задание упомянутого шаблона для документа на языке, совместимом с описанием ограничений.
15. Способ по п.14, в котором размер отображения документа и тип информационного содержимого являются неизвестными при задании шаблона.
16. Способ по п.13, в котором определение доступных местоположений информационного содержимого основано по меньшей мере, частично, на местоположениях другого информационного содержимого, ранее размещенного в документе.
17. Реализуемая посредством компьютера система, которая компонует информационное содержимое для создания макета, который может быть отображен во множестве размеров и размерностей с различным информационным содержимым, содержащая:
средство описания ограничений шаблона для макета документа;
средство определения размера отображения документа;
средство приема различного информационного содержимого для документа;
средство определения доступных местоположений для различного информационного содержимого на основании ограничений упомянутого шаблона и размера отображения для документа;
средство выбора из доступных местоположений предпочтительного местоположения для различного информационного содержимого; и
средство создания макета для документа путем размещения различного информационного содержимого в упомянутое предпочтительное местоположение на основании по меньшей мере одного из следующих факторов: семантического потока, индивидуальности фирменной символики, взаимосвязи изображений и текста, и рекламных тем.
Способ обработки целлюлозных материалов, с целью тонкого измельчения или переведения в коллоидальный раствор | 1923 |
|
SU2005A1 |
Способ обработки целлюлозных материалов, с целью тонкого измельчения или переведения в коллоидальный раствор | 1923 |
|
SU2005A1 |
US 5278901, 11.01.1995 | |||
RU 2003119519 A, 10.01.2005. |
Авторы
Даты
2011-05-27—Публикация
2006-10-04—Подача