BRPI0616940A2 - projeto de multi-forma com composição harmÈnica para documentos dinamicamente agregados - Google Patents
projeto de multi-forma com composição harmÈnica para documentos dinamicamente agregados Download PDFInfo
- Publication number
- BRPI0616940A2 BRPI0616940A2 BRPI0616940-6A BRPI0616940A BRPI0616940A2 BR PI0616940 A2 BRPI0616940 A2 BR PI0616940A2 BR PI0616940 A BRPI0616940 A BR PI0616940A BR PI0616940 A2 BRPI0616940 A2 BR PI0616940A2
- Authority
- BR
- Brazil
- Prior art keywords
- content
- document
- layout
- model
- high quality
- Prior art date
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F40/00—Handling natural language data
- G06F40/10—Text processing
- G06F40/103—Formatting, i.e. changing of presentation of documents
- G06F40/114—Pagination
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/01—Input arrangements or combined input and output arrangements for interaction between user and computer
- G06F3/048—Interaction techniques based on graphical user interfaces [GUI]
- G06F3/0481—Interaction techniques based on graphical user interfaces [GUI] based on specific properties of the displayed interaction object or a metaphor-based environment, e.g. interaction with desktop elements like windows or icons, or assisted by a cursor's changing behaviour or appearance
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F40/00—Handling natural language data
- G06F40/10—Text processing
- G06F40/166—Editing, e.g. inserting or deleting
- G06F40/186—Templates
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Computational Linguistics (AREA)
- General Health & Medical Sciences (AREA)
- Health & Medical Sciences (AREA)
- Audiology, Speech & Language Pathology (AREA)
- Artificial Intelligence (AREA)
- Human Computer Interaction (AREA)
- Document Processing Apparatus (AREA)
- Processing Or Creating Images (AREA)
Abstract
PROJETO DE MULTI-FORMA COM COMPOSIçãO HARMÈNICA PARA DOCUMENTOS DINAMICAMENTE AGREGADOS. Uma arquitetura empregada para criar um documento de qualidade alta que é um documento que parece bom dado o(s) tipo(s) de conteúdo a ser exibido(s) no documento e o tamanho/dimensões do documento exibido. A arquitetura pode utilizar modelos de nível alto que amplamente definem restrições de leiaute para adaptar o conteúdo a múltiplos tamanhos e dimensões com uma ampla variedade de conteúdo em uma ampla variedade de formatos. Adicionalmente, descrições de nível alto de documentos de qualidade alta podem ser traduzidas em restrições de nível baixo para o uso com um sistema de AGDBL, dramaticamente reduzindo o número de modelos requeridos por aquele sistema enquanto ao mesmo tempo aumentando a funcionalidade dos modelos e a facilidade com a qual os modelos podem ser criados e mantidos.
Description
"PROJETO DE MULTI-FORMA COM COMPOSIÇÃO HARMÔNICAPARA DOCUMENTOS DINAMICAMENTE AGREGADOS"
ANTECEDENTES
Publicações comercialmente impressas, como jornaise revistas, significativamente usam leiautes de página eprojetos com base em grade. Nos anos vinte, projetistas Mon-drian e Le Corbusier criaram sistemas de projeto ordenadoscom base em grade para imprimir vários tipos de conteúdo dedocumento. Estes sistemas de projeto com base em grade foi também melhorado na Suiça após a Segunda Guerra Mundial e,nos anos cinqüenta e sessenta, rapidamente difundidos aolongo do mundo como o padrão para publicações comerciais.Hoje, os sistemas de projeto com base em grade permanecemuniversalmente implementados em uma variedade de sistemas depublicação.
Vários sistemas de software bem sucedidos existemque suportam projetos de página com base em grade. Produtoscomo MICROSOFT PUBLISHER oferecido por Microsoft Corporationof Redmond, Washington, QUARKXPRESS® oferecido por Quark,Inc. of Denver, Colorado, e ADOBE PAGEMAKER® oferecido porAdobe Systems Incorporated of San Jose, Califórnia se torna-ram os padrões de indústria para publicação comercial e edi-toração eletrônica. Embora estes sistemas de software sejamadequados para seu propósito intencionado, o mapeamento atu- al dos elementos da página, como texto, imagens, e barraslaterais, para posições de grade dentro de um leiaute de do-cumento permanece um processo manual. Tipicamente, com lei-aute de documento com base em grade é personalizado para umtamanho de página especifico, como uma folha de papel de 8 ^por 11 polegadas (21,5 por 27,9 cm). Porém, não há nenhummodo óbvio para estes leiautes personalizados adaptar a umafaixa de tamanhos de página e outras condições de visualiza- ção de uma maneira graciosa (isto é, também referido aquicomo "refluxo de documento").
Porque o leiaute de documento com base em gradeconta com tamanho fixo estático e processo manual, os siste-mas de projeto com base em grade em geral não suportam "re- fluxo de documento". Sistemas que suportam a refluxação doconteúdo de documento, como Microsoft Word e linguagem demarcação de hipertexto (HTML), tipicamente considere o con-teúdo de documento como um fluxo simples, unidimensional queserpenteia de uma página para a próxima. Desse modo, estes tipos de sistemas podem perder o leiaute de documento basea-do em grade original. Uma tal dificuldade pode surgir tambémcom sistemas que utilizam orientações múltiplas com fatoresde forma diferentes.
A dificuldade de generalizar projetos com base em grade explica a natureza em geral inferior de leiautes natela comparados aos leiautes impressos similares. Quando asresoluções de tela de dispositivos de exibição começam a pa-rear a qualidade de resolução de uma página impressa, surgeuma necessidade para fácil e automaticamente adaptar proje-tos com base em grade de documento às exibições eletrônicasde tamanho arbitrário. "Composição harmônica" pode ser usadapara definir um conjunto de regras e restrições aplicadas àcolocação de objetos, como (mas não limitado a) texto e ima-gem dentro do sistema com base em grade para manter relaçãoe proporção dos elementos para visualização e legibilidadeótimas para documentos dinamicamente agregados. Isto podeser um fator único no desenvolvimento e projeto de um leiau- te de qualidade alta eficaz adaptável. Esta dificuldade édiscutivelmente um dos maiores impedimentos restantes paracriar experiências de leitura em-linha que concorrem com a-queles de tinta em papel. Experiência de leitura na tela po-de eventualmente ultrapassar a experiência de ler papel, porque os computadores provêem uma multidão de oportunidadespara customização e estilo, como também capacidades como a-nimação e interatividade.
Leiaute de documento baseado em grade adaptávelrequer paginação flexível para o mapeamento de conteúdo de documento para um conjunto de páginas distintas. As páginasdistintas podem estar sujeitas às várias restrições como aordenação seqüencial de palavras em um fluxo de texto, a ca-pacidade finita das páginas, e as dependências entre o con-teúdo dentro de um documento (por exemplo, referências tex- tuais a figuras ou tabelas). Encontrar uma paginação desejá-vel é freqüentemente difícil quando um ou mais tipos adicio-nais de conteúdo, como figuras ou tabelas, estão envolvidos.
Para adquirir paginação ótima, uma medida de su-cesso deve ser definida para cada um dos conjuntos apropria- dos de páginas distintas. Paginação tem a propriedade de"subproblema ótimo" e, portanto, é solvável através de pro-gramação dinâmica. Qualquer solução ótima de η páginas con-teria uma solução ótima de n-1 páginas inerentemente. Tipi-camente, um paginador de programação dinâmica começa com umconjunto de solução vazio e incrementalmente adiciona e so-luciona um subproblema (por exemplo, um subconjunto de pági-nas distintas) para encontrar um conjunto apropriado de pá- ginas distintas. Adicionalmente, o paginador de programaçãodinâmica mantém uma tabela da contagem de cada subproblema(por exemplo, uma medida de sucesso com base em uma métricapredeterminada) e um ponteiro anterior para o subproblemaprecedente na solução ótima. Um subproblema novo é avaliadovarrendo a tabela para o subproblema precedente com a melhorcontagem que pode corretamente preceder o subproblema novo.Conseqüentemente, o paginador de programação dinâmica avaliacada um dos possíveis antecessores de cada subproblema novo.Infelizmente, pode haver um número significativo de anteces-sores de cada subproblema novo para avaliar, com uma grandemaioria nem sempre qualificando como antecessores válidos dosubproblema novo. Portanto, o paginador de programação dinâ-mica ineficazmente conduz avaliações de subproblemas ante-cessores inutilizáveis e, desse modo, reduz a velocidade depaginação.
Além disso, no ambiente de computador de hoje háuma expansão rápida de dispositivos e exibições tanto emforma como relação de aspectos. O conteúdo e a informaçãosão vertidos em exibições de pulso minúsculas, dispositivos portáteis de mão, estruturas digitais, postos de trabalho eaté mesmo exibições grande montadas em parede. Como partedesta tendência que o computador pessoal emergiu como ummeio de leitura importante. De fato, ler na tela se tornouuma forma principal de ajuntar informação em nossa sociedadehoj e.
Porém, muitos de nossos métodos atuais de projetardocumentos para a rede, ou estes dispositivos com tamanhos e formas da exibição dramaticamente diferentes, faltam em des-cumprimento de eficazmente utilizar o estado real dinâmiconovo oferecido pelas muitas variedades de exibições. A maio-ria dos .formatos de rede não se desempenha bem em exibiçõesmúltiplas. Isto é em parte devido à influência de meios deprojeto com base em impressão estática na legibilidade paraa tela. Corpos vastos de informação estão disponíveis emforma impressa, e a vantagem e importância de projeto de do-cumento bom são bem conhecidas no mundo de impressão comoauxiliando a comunicação, legibilidade e comercialidade por-que atrai e prende a atenção dos espectadores. Embora proje-to com base em grade, de boa qualidade seja trivial em im-pressão, não é prevalecente em documentos em série. Conse-qüentemente, novos conceitos de projeto de multi-nível ne-cessitam ser explorados para considerar as característicasde exibição de tamanho de tela, razão e orientação.
A internet torna isso muito fácil de ajuntar docu-mentos de informação de muitas fontes distintas e exibi-losjuntos em uma única tela. Utilitários de pesquisa e agrega-dores de notícias fazem isso e exibem seus resultados comouma página de rede em HTML. Porém, seria preferível do con-trário exibir estes resultados em uma forma atrativa, bemprojetada que concorre com os projetos de qualidade comumen-te vistos em impressão. Trabalho mais prematuro tornou pos-sivel exibir projetos com base em grade que adaptam às con-dições de visualização diferentes, mas os projetos nem sem-pre transferem bem para conteúdo diferente e foram proibiti-vamente difíceis de produzir.
Desse modo, trabalho anterior permitiu os usuáriosprojetar leiautes de documento com base em grade que adaptamàs dimensões de janela diferentes, mas os leiautes de docu-mento foram especificados em uma linguagem de nível baixoque era difícil de criar e manter. Por exemplo, um "estilo"poderia ser projetado para ser uma coletânea de modelos combase em restrição, cada um deste pode exibir uma certa cole-tânea de conteúdo a uma faixa designada de tamanhos de tela.Quando uma janela de documentos foi redimensionada, o siste-ma de restrição do modelo redimensiona cada elemento de exi- bição até um limiar ser cruzado, em cujo ponto outro modelofoi usado. Porém, o objeto sistemas anteriores era para es-tilos de documento para ser re-utilizável para documentosmúltiplos. Embora isso seja verdade a uma extensão, em prá-tica foi descoberto que muitos leiautes não pareceriam bons se as dimensões de figura fossem significativamente diferen-tes que as usadas no projeto original. Projetar um estilorobusto que poderia manipular qualquer combinação de elemen-tos visuais requereu ser projetado, um para cada possívelcombinação de elementos e variações de elemento, para núme- ros enormes de modelos.
Conseqüentemente, o sistema de documento adaptávelanterior permitiu os projetistas construir documentos queadaptam aos tamanhos e formatos de tela diferentes, mas so-freu de dois problemas críticos. Primeiro, foi muito difícilde trabalhar com os leiautes de documento atuais, criar pro-jetos novos e modificar projetos existentes. Segundo, osleiautes de documento não se adaptaram muito bem às seleções distintas de conteúdo sem serem modificados por projetistasou editores antes da publicação.
Leiautes em meios impressos têm o benefício deprojetistas e editores que personalizam o produto final al-terando o leiaute e o conteúdo. Um modelo de projeto simples, estático é improvável de parecer muito bom para tipos dife-rentes de conteúdo onde títulos ou cabeçalhos são comprimen-tos diferentes e gráficos são dimensões diferentes, embora amaioria dos elementos de projeto na página possam ser osmesmos. Um dos desafios principais em projeto de multi-nível desta natureza é manter leiautes de qualidade, uma vez quenão há nenhum editor certificando que tudo em um leiaute pa-reça bom e personalizando coisas quando necessário, os pro-jetos deveriam ser capazes de acomodar modos múltiplos paraexibir conteúdo e distinguir qual método é melhor em qual-quer hora.
SUMÁRIO
O seguinte apresenta um sumário simplificado doassunto reivindicado para fornecer uma compreensão básica dealguns aspectos do assunto reivindicado. Este sumário não éuma visão geral extensiva da invenção. Não é intencionadoidentificar elementos fundamentais/críticos da invenção oudelinear o escopo da invenção. Seu propósito exclusivo é a-presentar alguns conceitos do assunto reivindicado em umaforma simplificada como um prelúdio para a descrição maisdetalhada que é apresentada depois.
0. assunto reivindicado revelado e reivindicado a-qui, em um aspecto deste, compreende uma arquitetura que po- de facilitar facilmente projetar e exibir projetos com baseem grade ricos e/ou leiautes de qualidade alta que se adap-tam a muitas condições de visualização diferentes e seleçõesde conteúdo. Para a realização do antecedente, modelos podemser empregados que descrevem a um nivel alto as restrições do leiaute. Estes modelos podem ser muito mais fáceis deproduzir e manter, ao mesmo tempo aumentando a flexibilidadedos leiautes, lhes permitindo melhorar adaptar a conteúdodistinto. Também, a aplicabilidade da arquitetura pode seraumentada em sistemas anteriores (por exemplo, "Adaptive Gride-Based Document Layout" (AGBDL), Jacobs, et al. 2003)estendendo os tipos de conteúdo que podem ser exibidos, par-ticularmente focalizando em conteúdo agregado de uma varie-dade de fontes na internet.
De acordo com um aspecto do assunto reivindicado, modelos podem ser definidos com construções de nivel altoque são fáceis de entender e usar. Conseqüentemente, a tare-fa de projetar e/ou manter os modelos pode ser prática paraprojetistas gráficos que podem não ter uma base técnica ex-tensiva. Adicionalmente, os projetos resultantes podem ser facilmente compreensíveis e sustentáveis por outros proje-tistas, até mesmo aqueles que não ajudaram a criar o modelo.Os modelos criados com documentos estáticos e documentos di-nâmicos obtidos podem ser empregados de uma variedade defontes com base em rede. Os modelos podem ser empregados pa-ra leiautes de projeto de multi-nível também, que, por exem-plo, podem produzir documentos com camadas múltiplas de con-teúdo .
De acordo com outro aspecto, os leiautes de docu-mento resultantes podem ser leiautes de qualidade alta (porexemplo, leiautes que "parecem bons"), e retém sua atraçãovisual em diferentes tamanhos da exibição ao mesmo tempo em-pregando tipos distintos de conteúdo. Leiautes de qualidade alta podem ser projetados de modo que eles não comprometam ofluxo semântico, identidade da marca, correlação de imagem ede texto, temas de propaganda e outros.
De acordo com outro aspecto do assunto reivindica-do, os modelos podem ser flexíveis o bastante para manipularuma ampla variedade de conteúdo que pode ser encontrado emum documento agregado sem requerer um número grande de mode-los a ser projetado e mantido. Do contrário, um modelo sim-ples pode definir várias possíveis configurações de elemen-tos e/ou conteúdo, reduzindo grandemente o número de modelosnecessários para fornecer projetos flexíveis. Além disso, osmodelos descritos em um nível alto podem ser traduzidos pararestrições de nível baixo empregadas por outros sistemas. Aarquitetura pode prover sistemas de restrição para automati-camente implementar comportamentos comuns em documentos a-daptáveis, ao invés de requerer de cada projetista para co-dificá-los à mão.
Além disso, a arquitetura pode permitir aos proje-tistas gráficos facilmente projetar leiautes de documento dequalidade alta que se adaptam a diferentes tamanhos de tela,até mesmo quando o conteúdo preciso a ser exibido for desco-nhecido. Adicionalmente, o conceito de um documento pode serexpandido para incluir referências a fontes externas queprovavelmente não estarão em um formato uniforme. Conseqüen-temente, a arquitetura pode tornar fácil de produzir arqui-tetura de projeto de multi-nivel com base em projetos dequalidade alta, com base em grade adaptáveis com bastanteflexibilidade para manipular o conteúdo que é agregado defontes múltiplas, e pode ser desconhecido na ocasião do pro-jeto.
Para a realização do antecedente e fins relaciona-dos, certos aspectos ilustrativos do assunto reivindicadosão descritos aqui com relação à descrição a seguir e os de-senhos anexados. Porém, estes aspectos são indicativos dealguns dos vários modos em que os princípios da invenção po-dem ser empregados e é intencionado que o assunto reivindi-cado inclua todos tais aspectos e seus equivalentes. Outrasvantagens e características novas da invenção ficarão evi-dentes da des crição detalhada a seguir da invenção quandoconsiderada junto com os desenhos.
BREVE DESCRIÇÃO DOS DESENHOS
FIG. 1 ilustra um sistema que facilita adaptar umleiaute de documento que pode ser exibido em múltiplos tama-nhos e dimensões com uma ampla variedade de conteúdo.
FIG. 2 ilustra um diagrama de blocos de um sistemaque facilita a criação, modificação e/ou armazenamento de ummodelo.FIG. 3 ilustra uma máquina de leiaute que gera umleiaute de qualidade alta com base em pelo menos em parte emfluxo semântico, identidade da marca, correlação de imagem etexto, e/ou temas de propaganda.
FIG. 4 ilustra um sistema que facilita adaptar umleiaute de documento que pode ser exibido com base nas di-mensões de um dispositivo de saida.
FIG. 5 ilustra um sistema que cria um leiaute dequalidade alta com base em um modelo especificado com cons-truções de nível alto, e traduz o leiaute para restrições denível baixo que uma máquina de nível baixo pode usar paracriar o leiaute de qualidade alta.
FIG. 6 ilustra um sistema que seleciona um modeloe/ou dispõe conteúdo em um leiaute para produzir um leiautede qualidade alta.
FIG. 7 ilustra uma máquina de leiaute que empregaLinguagem de Folha de Estilos Extensível para Transformação(XSLT) para traduzir de um formato de fonte.
FIG. 8 ilustra um fluxograma exemplar de procedi-mentos que facilitam para dispor o conteúdo para criar umleiaute de qualidade alta.
FIG. 9 exibe uma representação de diagrama de blo-cos de um ambiente de leiaute de documento com base em gradeadaptável.
FIG. 10 exibe uma representação de diagrama deblocos de um ambiente de computação e sistemas de computadordeste que a invenção presente pode utilizar.
FIG. 11 exibe uma representação de diagrama deblocos de um leiaute de documento incluindo estilos e mode-los de leiaute adaptáveis.
FIG. 12 exibe uma representação de diagrama deblocos de um modelo adaptável.
FIG. 13 exibe uma representação de diagrama deblocos de um conteúdo de documento incluindo fluxos de con-teúdo .
FIG. 14 exibe uma representação de diagrama deblocos de um fluxo de conteúdo incluindo itens de conteúdo.
FIGS. 15A-15B exibem uma representação de fIuxo-grama de um método de aplicar conteúdo de documento aos mo-delos
FIGS. 16A-16C exibem representações de fluxogramade um método de conteúdo de fluxo para elementos dentro doleiaute de documento.
FIGS. 17A-17C exibem representações de fluxogramade um método de elementos de auto-dimensionamento dentro doleiaute de documento.
FIG. 18 exibe uma representação de fluxograma deum método de registrar um modelo com base em quão bem o con-teúdo de documento ajusta-se ao modelo.
FIGS. 19A - 19D exibe uma representação de fluxo-grama de um método de otimamente paginar o conteúdo de docu-mento em um leiaute de documento baseado em grade adaptável.
FIG. 20 ilustra um diagrama de blocos esquemáticode um ambiente de computação exemplar.
DESCRIÇÃO DA INVENÇÃO
O assunto reivindicado é agora descrito com refe-rência aos desenhos, em que tais numerais de referência sãousados para referir-se a tais elementos do princípio ao fim.Na descrição a seguir, para propósitos de explanação, nume-rosos detalhes específicos são expostos para fornecer umacompreensão completa da invenção. Porém, pode ser evidenteque o assunto reivindicado pode ser praticado sem estes de-talhes específicos. Em outras circunstâncias, são mostradosestruturas e dispositivos bem conhecidos em forma de diagra-ma de blocos para facilitar a descrição do assunto reivindi-cado.
Como usado neste pedido, os termos "componente" e"sistema" são intencionados a referir-se a uma entidade re-lacionada a computador, ou hardware, uma combinação de hard-ware e software, software, ou software em execução. Por e-xemplo, um componente pode ser, mas não é limitado a ser, umprocesso que opera em um processador, um processador, um ob-jeto, um executável, uma cadeia de execução, um programa,e/ou um computador. Por via de ilustração, uma aplicação queopera tanto em um servidor como o servidor pode ser um com-ponente. Um ou mais componentes podem residir dentro de umprocesso e/ou cadeia de execução e um componente pode serlocalizado em um computador e/ou distribuído entre dois oumais computadores.
Como usado neste pedido, os termos "projeto" ou"leiaute" referem-se em geral como o conteúdo é dispostodentro de um documento. Como aqui usado projeto e leiautepodem ser substancialmente permutáveis. Por exemplo, um pro-jeto de documento e um leiaute de documento podem se referircomo o conteúdo é disposto no documento.
Como usado neste pedido, a frase "nível alto" emgeral refere-se a uma linguagem de programação ou constru-ções de programação que são mais amigáveis ao usuário quelinguagens ou construções de nível baixo, e podem ser atécerto ponto independentes da plataforma. Construções de ní-vel alto podem fornecer abstrações em operações de nívelbaixo para evitar a complexidade que é do contrário necessá-ria para implementar as operações. Em geral, uma linguagem assembly, como também Linguagem de Marcação de HiperTexto(HTML) pura e outros formatos de codificação "soltos" sãoconsiderados ser nível baixo, enquanto que o formato de saí-da após aplicar uma Linguagem de Folha de Estilos Extensívelpara Transformação (XSLT) é considerado ser nível alto.
Como aqui usado, o termo "qualidade alta" signifi-ca que uma saída resultante é determinada para parecer boadadas as dimensões de exibição presentes e o conteúdo pre-sente. Qualidade alta pode referir-se a um leiaute ou proje-to ou uma localização específica dentro do leiaute ao qual conteúdo específico será inserido. Por exemplo, um leiautede qualidade alta é um que é determinado para parecer bom àdimensão de exibição presente com o conteúdo presente en-quanto que uma localização de qualidade alta é uma localiza-ção à qual o conteúdo específico pode ser introduzido en- quanto mantendo o caráter de qualidade alta do leiaute ouprojeto geral. É para ser apreciado que caráter de qualidadealta de um leiaute ou localização pode requerer satisfazeras condições adicionais também, como não comprometer o fluxosemântico, identidade da marca, correlação de imagem e texto,temas de propaganda e outros. É também para ser entendidoque estas condições adicionais podem ser com base em consi-derações descritas infra, como modelos e elementos não-retangulares, equilíbrio de coluna, parágrafos irrompiveis esub-documentos atômicos, e interatividade.
As modalidades descritas aqui dizem respeito a umsistema para exibição adaptável de dados agregados com baseem rede, e melhorias de modelo para um sistema de Leiaute deDocumento Baseado em Grade Adaptável. Um sistema para agre-gar conteúdo de internet e exibi-lo usando o sistema de Lei-aute de Documento Baseado em Grade Adaptável (AGBDL) é pro-vido que permite exibir dados em uma gama extensiva de for-matos visuais de qualidade alta que podem adaptar-se automa-ticamente a diferentes tamanhos da exibição. 0 sistema podeusar quaisquer de várias fontes de conteúdo incluindo, masnão limitados a, alimentações de noticias de RSS, resultadosde utilitário de pesquisa de internet, back-ends de agrega-dor de noticias de internet como MSN Newsbot, e o conteúdo "raspado" diretamente dos sítios de rede de conteúdo comojornais e revistas. Isto pode ser feito expandindo a noçãode um documento, como descrito no trabalho original de AGBDLmais detalhado infra.
A arquitetura em questão pode suportar documentos que consistem em vários documentos separados e que podem serdispostos em uma hierarquia de multi-nível de documentos-pais e sub-documentos embutidos. Cada documento de componen-te pode ser compreendido de uma combinação de fontes nativase externas que podem ser traduzidas no tempo de carregamentono formato de documento nativo do sistema, ou através de umatradução de XSLT que pode ser especificada para cada fonteindividual, ou através de um programa auxiliador que poderia ser um raspador de rede ou algum outro agente de agrupamentoou processamento de dados. As fontes externas podem ser es-pecificadas em níveis múltiplos no documento. Uma fonte ex-terna pode ser carregada como um documento inteiro (nívelsuperior ou sub-documento), como um fluxo de conteúdo parti- cular em um documento, ou como um item de conteúdo simplesem um fluxo de conteúdo particular. Além disso, uma fonteexterna pode ser incluída completamente ou em parte em umdocumento. Por exemplo, um fluxo de conteúdo simples podeser seletivamente carregado de uma fonte dada após tradução.
Em defesa disso, o esquema de documento vem sendoexpandido para permitir um documento de AGBDL referenciarfontes externas dos modos descritos acima. Quando um docu-mento é analisado gramaticalmente e carregado, qualquer sub-documento ou outro conteúdo externo especificado pode sertraduzido (se necessário) e depois recursivamente analisadogramaticalmente e carregado também. Sub-documentos são defi-nidos como documentos de AGBDL completos por si só, referin-do seu próprio conjunto de modelos de exibição que são usa-dos como sub-modelos no documento incluso. Na hora da exibi-ção, o sub-documento é passado para uma região da tela emque o documento deveria ser transmitido. 0 sub-documento po-de recursivamente paginar e depois fica fora na região dadacomo se fosse um documento de nível superior na janela dada.O sub-documento pode ser distinto de outro conteúdo externoque é carregado como dados no documento incluso porque o úl-timo pode ser exibido no documento-pai usando os modelos dodocumento-pai como qualquer outro conteúdo.
Com relação aos modelos adaptáveis no sistema deAGBDL (descrito abaixo em detalhes), expansões com relaçãoaos seguintes são fornecidas: projeto de modelo de nivel al-to, adaptabilidade de modelo estendida (modelos que se adap-tam ao conteúdo), e parâmetros de modelo e saídas. Todos ostrês destas categorias podem facilitar o autoração e manu-tenção dos "estilos do documento". Estilos podem ser defini-dos como uma coletânea de modelos que juntos cobrem a faixade leiautes na qual um documento pode ser transmitido.
Projeto de modelo de nível ãlto pode possibilitarmodelos com base em restrição ser especificados usando cons-truções de nível alto que são interpretadas pelo sistema pa-ra gerar os detalhes de nível baixo, incluindo as dimensõesde cada elemento de exibição e localização como também asrestrições individuais que controlam as características de exibição do elemento, relações a outros elementos de exibi-ção, e comportamentos adaptáveis.
Convencionalmente, como no sistema de AGBDL, osmodelos necessitam ser especificados escrevendo código deXML que descreveu cada elemento de exibição, restrição, e atributo que ocorrem em cada modelo. A ferramenta de autora-ção de modelo tornou (discutivelmente) mais fácil escrever emodificar os modelos por meio de uma interface de GUI, mas oautor ainda foi requerido especificar todos dos mesmos deta-lhes por meio deste outro método.
A inovação em questão pode permitir especificaçãode documento usando construções de nivel alto como grades decoluna adaptáveis e relações relativas entre elementos. Umagrade de coluna pode ser definida usando combinações de lar-guras de coluna proporcionais e absolutas, e regras podemser especificadas controlando quais colunas são instanciadasem qualquer largura de página dada. Elementos de exibiçãopodem depois ser colocados atravessando uma ou mais destascolunas ou porções destas colunas, que podem depois ser re-lacionados a outros elementos, por exemplo, através de "so-bre" e "sub" tarefas. Uma declaração simples pode especifi-car ou implicar uma coletânea de parâmetros dos quais muitasrestrições de nivel baixo são geradas automaticamente notempo de carregamento. Outros parâmetros podem ser especifi-cados estabelecendo atributos de elementos como margens epreenchimento que são usados para gerar restrições adicio-nais .
Documentos ou páginas freqüentemente contêm cole-tâneas de elementos de exibição similares, como colunas múl-tiplas de texto que compartilha muitos valores de parâmetro.Aspectos do assunto reivindicado podem permitir descrever umelemento uma vez e depois tempos múltiplos instanciados. Ca-da circunstância pode ter um subconjunto de seus detalhesanulados, como sua informação de localização. Adicionalmente,a linguagem de descrição é reorganizada de forma que todasas restrições relativas a um elemento particular possam serincluídas na descrição de elemento que torna mais fácil paraum usuário entender e manter o modelo.
Adaptabilidade de modelo estendida pode permitircada modelo individual cobrir uma faixa mais ampla de dimen-sões de exibição e conteúdo de documento. Previamente, cadamodelo tinha um conjunto fixo de elementos de exibição, re-querendo um conjunto especifico de conteúdo, e os elementosseriam adaptados através do sistema de restrição para cobriruma faixa de dimensões de página. Cada sortimento de conteú-do diferente, como o número de figuras na página, requereria um modelo diferente. Uma figura com uma relação de aspectos-paisagem usaria um modelo diferente que uma figura com umarelação de aspectos de retrato. Manipulação de figuras múl-tiplas em uma página com razões de aspecto ou resoluções po-tencialmente diferentes requereria números crescentes de mo- delos para manipular as possíveis combinações de tipos defigura que aparecem em várias ordens nos fluxos de conteúdo.Um modelo simples também teria um número fixo de colunas nosistema original, requerendo modelos novos que manipulam to-das as possíveis permutações de tipos de figura para cada número de colunas que uma página pode possuir. O número to-tal de modelos requeridos para um "estilo" flexível cresceuexponencialmente à medida que possíveis dimensões nas quaisum modelo adapta-se aumentou, tornando a criação de um esti-lo amplamente aplicável incômoda e sua manutenção muito di- fícil.
A definição de modelo em questão tem várias carac-terísticas novas que tratam destes assuntos. Elementos op-cionais podem permitir seleções de conteúdo diferentes a sermanipuladas por um modelo simples. Elementos podem ser com-binados em grupos "Ou" que pode permitir um modelo instanci-ar apenas um elemento de um conjunto de possíveis escolhascada vez que o modelo for usado. Grupos Ou podem usar um de vários algoritmos para decidir que elemento selecionar em umleiaute dado, incluindo melhor ajuste, primeiro ajuste, pri-meiro ajuste bom e algoritmos similares.
Adicionalmente, os modelos novos podem agora terum número variável de colunas. A definição de coluna descri- ta acima pode incluir regras para a inclusão de colunas a-daptáveis com base em limiares de página específicos ou oslimiares podem ser calculados pelos componentes da arquite-tura com base nas larguras de coluna mínimas. Prioridades decoluna podem ser especificadas que controlam quais colunas são instanciadas em tamanhos de página particulares. As co-lunas que não são usadas em uma largura de página particularpodem ser caídas para largura zero pelo sistema de restriçãode forma que os elementos que as atravessam são reduzidos emlargura ou eliminados completamente naquele tamanho de pági- na. Juntos, os elementos opcionais e grades de coluna adap-táveis podem dramaticamente reduzir o número de modelos e amanutenção associada.
Outra extensão para o sistema de modelo pode per-mitir passar parâmetros de um lado para outro entre modelos- pai e os sub-modelos dispostos dentro deles. Os parâmetros evalores retornados podem ser colocados na memória temporáriade restrição do modelo de recepção assim eles podem ser re-feridos através de elementos como qualquer outro valor derestrição. Estes parâmetros podem ser usados, por exemplo,para ajustar o número de colunas em um sub-modelo, sinalizara inclusão ou exclusão de elementos opcionais, ou controlaro modo que as figuras são exibidas no filho. Os parâmetros passados para um sub-modelo podem ser valores imediatos oupodem ser restrições no sistema do modelo-pai que podem seravaliada no tempo de chamada.
Também, uma folha de estilos pode ser passada comoum parâmetro para um sub-modelo assim um documento-pai podecontrolar muitos dos detalhes de composição usados no filhodiretamente. Parâmetros retornados podem informar o modelo-pai de detalhes do contrário escondidos do leiaute do filho,como onde o topo ou fundo de uma figura ficam, ou onde umcabeçalho ou titulo termina. 0 pai pode depois alinhar ou-tros elementos de exibição às características em um sub-modelo ou assegurar que duas figuras não relacionadas emsub-modelos separados não sejam colocadas lado-a-lado.
Como será apreciado por aqueles versados na técni-ca, há outras melhorias que somam à potência dos modelos,particularmente para exibir documentos de composto hierár-quicos como descritos acima. Por exemplo, grupos "E" permi-tem uma coletânea de elementos para consumir de um átomo deconteúdo simples que permite maior flexibilidade em dispor eorganizar os documentos. Isto pode possibilitar, por exemplo,uma fotografia de característica ser arrancada de uma histó-ria de notícias individual e exibida na primeira página deum jornal em um elemento separado que o resto da história.Outra característica pode passar a região de Interface deExibição Gráfica (GDI) do elemento hospedeiro para o sub-modelo sendo usado no elemento, ao invés da caixa de limita-ção retangular passada através de sistemas anteriores. Esteaspecto pode permitir o sub-modelo fluir seu texto ao redorde elementos de sobreposição no modelo-pai ou selecionar umelemento não-ocluso de um grupo OU para exibir uma imagem.
Como supra descrito, outras modalidades podem pro-ver construções de nivel alto para especificação de modelopara facilitar modos mais poderosos para descrever o compor-tamento desejado da grade de coluna, como uma faixa especi-fica de tamanhos desejados para cada coluna, incluindo umacoletânea de escolhas de tamanho fixo. Além disso, priorida-des podem ser especificadas para solucionar situações sobre-restringidas e sub-restringidas, usando margens automatica- mente geradas por exemplo. Modalidades podem suportar gradesverticais automaticamente geradas similares às colunas masseguindo regras e heurísticas diferentes, e sub-grade adap-táveis dividindo grade-colunas individuais, e grades de ní-vel superior adicionais para permitir leiautes com coletâ- neas diferentes de elementos controlados através de gradesdiferentes. Elementos individuais podem ser instanciadosmúltiplas vezes e é contemplado ser capaz de construir umgrupo de elementos que podem todos ser instanciado múltiplasvezes juntos.
Especificando um sistema de restrição consistentena presença de elementos opcionais (e grupos de elementos OU)pode rapidamente tornar muito complexo e enganador, o que étambém contemplado é desenvolver construções para trabalharo sistema correto e automaticamente construi-lo em um modelodada uma descrição do resultado desejado.
Adicionalmente, é também contemplado acrescentarmais interatividade aos documentos de Leiaute de ExibiçãoAdaptável (ADL) permitindo os usuários finais redimensionaros elementos de exibição individuais à medida que eles vêemo conteúdo, ou adicionar dados novos em um elemento, comotambém estender o comportamento de contagem de coluna adap-tável para usar métodos mais sofisticados para selecionar quais colunas incluir em um tamanho dado, com base no conte-údo presente. Isto poderia envolver renderização de cadapossível seleção das colunas e selecionar o melhor com baseem uma contagem de leiaute.
Como brevemente detalhado supra, de acordo com um aspecto, o assunto reivindicado pode estender o sistema dedocumento de AGBDL anterior de três modos gerais. Primeiro,o sistema de modelo foi melhorado, tornando os modelos maispoderosos e requerendo mais poucos modelos para cobrir umafaixa até mais ampla de conteúdo, e tornando os modelos ao mesmo tempo mais fáceis de escrever e manter. Além disso, adefinição de documento foi expandida para permitir um docu-mento agrupar conteúdo de localizações múltiplas e para do-cumentos individuais ser montados em hierarquias de documen-tos pais e filhos. Por fim, a máquina de leiaute (por exem-pio, a máquina de nível baixo no sistema de AGBDL) foi atua-lizada para prover suporte às características novas freqüen-temente específicas aos domínios novos. Estas extensões eoutros aspectos do assunto reivindicado serão agora descri-tos.
MODELOS
Há três aspectos primários dos modelos. Primeiro,os modelos podem ser especificados usando uma linguagem de alto nivel que torna os modelos mais fáceis para autorar,entender e manter. Segundo, os modelos podem ser adaptáveisao conteúdo disponível, ao invés de requerer modelos separa-dos para toda possível variação, e combinação de variaçõesde conteúdo em um leiaute simples. Terceiro, os modelos po- dem ter a capacidade de estender em uma faixa maior de di-mensões de tela que diminui o número de modelos similaresque devem ser escritos e mantidos.
Modelos no sistema de AGBDL eram muito difíceis deescrever e entender porque eles foram escritos em uma Iin-guagem de nível muito baixo. Cada restrição individual foiespecificada explicitamente e muitas restrições foram reque-ridas para cada elemento em uma página. Sistemas de restri-ção para adaptações sofisticadas, como um número variável decolunas, foram proibitivamente difíceis de escrever, e deci- frar os modelos de outro autor era muito trabalhoso. A fer-ramenta de projeto de modelo proveu uma GUI para o projetode modelo, mas principalmente forneceu apenas suporte de ní-vel baixo, ainda requerendo a maioria das restrições ser in-dependentemente determinadas. Além disso, sua saída era mui- to difícil de entender e editar, tornando difícil de perso-nalizar um projeto além da capacidade da ferramenta.
De acordo com uma modalidade, o assunto reivindi-cado emprega modelos que capitalizam nas resistências nati-vas de construções de nível alto, desse modo incluindo blo-cos de construção mais poderosos na própria linguagem de mo-delo. Primitivos de nível alto na linguagem nova podem sercompilados em estruturas básicas quando o modelo for carre-gado pelo sistema, ou eles podem ser lidos diretamente pelamáquina de leiaute atualizada. Muitas partes do sistema derestrição dos primitivos novos podem ser deduzidas e geradasautomaticamente. 0 sistema pode também automaticamente gerarsistemas de restrição complicados para tarefas bem conheci-das, úteis.
DESCRIÇÃO DO MODELO DE NÍVEL ALTO
O sistema de AGBDL original e o assunto reivindi-cado podem definir modelos como documentos de Linguagem deMarcação Extensível (XML). No sistema original a descriçãode modelo foi organizada em seções. Todos os elementos foramdescritos por nós <elemento> dentro do nó-pai de <elementos>,e todas as restrições foram descritas por nós <restrição>dentro do nó-pai de <restrições>. Modelos de nível alto po-dem reter as duas seções, e podem também permitir um autordefinir uma restrição alternativamente dentro de qualquer nóelemento. Esta flexibilidade pode permitir o modelo agruparrestrições que descrevem um elemento específico diretamentecom o elemento, e colocar restrições globais na seção geral.
Ao invés de requerer que os autores especifiquemcada restrição individualmente, vários nós-filhos podem serdefinidos que podem ser colocados sob nós elemento para im-plicitamente definir várias restrições individuais que seaplicam ao pai. Por exemplo, margens e preenchimento podemser especificados para um elemento com nós simples contendoalguns dos atributos mostrados nos exemplos, infra:
<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"
/>
Tarefas especificas tipicamente sempre anularão asmais gerais. Pode ser assumido que qualquer valor que não édefinido por um atributo seja zero. O autor pode atribuiratributos a valores imediatos ou expressões referindo outrasrestrições. As restrições que controlam o dimensionamento ecolocação de um elemento podem ser especificadas com um nólocalização simples, novamente usando um subconjunto dospossíveis atributos. Se um nó for sob-restringido após ana-lisar gramaticalmente o nó localização, um erro é usualmentegerado.
Como ilustrado no exemplo a seguir, atributos "so-bre" e "sub" podem ser empregados para atribuir elementoscom base na posição de outros elementos. Por exemplo, o a-tributo "sobre" alinha o topo do elemento atual com o fundodo elemento nomeado, e o atributo "sub" alinha o fundo doelemento com o topo do elemento nomeado.
<location left="page. Ieft" right="page.
left+column.width" top="header.bottom" height="300" /><location center="page. center"" width="250" un-der="header" over="rodapé" />
É comum dividir um documento em uma grade grossade colunas. À medida que a largura de um documento altera há apenas alguns prováveis comportamentos que a maioria das co-lunas usará para adaptar-se. Por exemplo, as colunas podemtodas crescerem igualmente à medida que a página alarga, ouigualmente encolherem à medida que a página estreita. As co-lunas podem também cresce e encolher de acordo com algumas proporções fixas. Alternativa ou adicionalmente, algumas co-lunas poderiam permanecer em uma largura fixa enquanto ou-tras colunas redimensionariam ou a largura extra poderia serabsorvida em medianizes e margens ao redor das colunas. Épara ser apreciado que a linguagem de modelo pode conter ferramentas para definir grades que se adaptam usando combi-nações dos comportamentos listados acima, ou até mesmo ou-tros comportamentos prováveis ou desejados. Aspectos do as-sunto reivindicado podem automaticamente gerar o sistema derestrição necessário para implementar os comportamentos de-finidos pelas colunas. Por exemplo, o projetista de modelopode criar um nó <grade> que define o número e comportamentode predefinição das colunas de membro, e depois qualquer nú-mero de nós coluna pode ser criado sob o nó grade que podedefinir comportamentos alternados para.colunas individuais,como no exemplo abaixo:
<grid id="maingrid" columns="4"type="proportional" margin="10">
<column n="2" proportion="3.O" /><column n="4" type="fixed" width="200" /></grid>
O nó grade acima pode definir uma grade de colunade quatro colunas. As primeiras três colunas são definidaspara proporcionalmente crescer com a página, e a segunda co-luna é três vezes mais ampla que cada uma das outras duas. Aquarta coluna sempre permanece fixa em largura de 200 pixéis.Quando o nó grade é analisado gramaticalmente, restriçõesque definem as linhas de grade nomeadas, por exemplo, "main-grid.gridO" a "maingrid.grid4" podem ser criadas. O sistemade restrição para localizar cada uma das linhas de grade co-mo as alterações de largura de página podem ser automatica- mente geradas. Restrições também podem ser feitas definindocolunas com relação às linhas de grade nomeadas, por exemplo,"maingrid.columnl.right", "maingrid.columnl.Ieft", etc. Umautor de modelo pode diretamente referenciar estes nomes emrestrições que definem os elementos, ou então pode colocarum atributo de "coluna" nos nós localização que implicamrestrições esquerda e direita como é feito nos dois últimosdos exemplos a seguir.
<location Ieft="maingrid.column2. left"right="maingrid.column2.right" top="page.top" bottom="page.bottom" />
clocation column="maingrid.columnl" top="page.top"bottom="page.bottom" />clocation column="column2-column3" un-der="masthead" height="300"/>
O hifen ("-") no segundo exemplo de coluna de Io-calização indica aqui que o elemento atravessa ambas as co-lunas 2 e 3. Se houver apenas uma grade definida, o prefixode nome pode ser deixado de fora dos nomes de coluna e degrade, como é feito acima no segundo exemplo e será assumidoque eles referem-se à grade simples. Vãos de coluna podemser usados além das colunas individuais. Restrições adicio-nais podem ser criadas para cada coluna que pode ser usadanos elementos de localização. Estes pode incluir, mas nãosão limitados a "column.width" e "column.center" como tambémas linhas de coluna fracionárias "column.lthird", "co-lumn.2third", "column.lquarter", e assim por diante.
É típico ter muitos elementos similares em uma pá-gina que compartilha muitas se não a maioria das proprieda-des em comum, como colunas de texto em uma página de multi-coluna, gráficos de divisor e elementos de figura. As defi-nições de elemento podem ser usadas de novo colocando múlti-plos nós <localização> sob um nó simples de <elemento>. Cadanó localização pode criar uma circunstância nova do elemen-to-pai que é dimensionado e localizado com os atributos donó adicional. Nomes de elemento podem ter um índice com baseem 1, atribuído na ordem em que o nó localização aparece, emanexo a seus nomes de forma que circunstâncias podem serdistinguidas nas expressões de restrição.Quando restrições forem definidas em um elementocom instanciações múltiplas, é freqüentemente necessário quecada circunstância use um único nome para cada restrição.Macros podem ser feitos disponíveis para facilitar as ins- tanciações múltiplas. A cadeia "!THIS!" aparecendo em um no-me de restrição ou expressão pode avaliar para o nome dacircunstância sendo processada na ocasião. "!LAST!" pode a-valiar para o elemento anterior que torna fácil para encade-ar ou empilhar os elementos. Iniciando um nome com um ponto(".") em geral assume o nome da circunstância atual que pre-cede o período.
Usando nós localização múltiplos pode ser um modoconciso e eficiente para fazer elementos duplicados, mas po-de também ser útil para permitir variações em algumas dascircunstâncias. Por exemplo, alguns elementos do contrárioidênticos poderiam ter requerimentos de camada ζ (descritaabaixo) diferentes ou pode consumir de fluxos de conteúdodiferentes. Por este motivo, qualquer propriedade definidano nó elemento pode ser anulada em um nó localização. Pro-priedades que consistem em um valor simples, como ID de ca-mada ou de estilo podem ser anuladas ajustando um atributono nó localização. Propriedades mais complicadas, como con-dições prévias,, podem ser escritas elaboradamente colocandoum nó condição prévia sob o nó localização. 0 exemplo a se-guir mostra um elemento instanciado três vezes com proprie-dades escritas elaboradamente no segundo dois.
<element id="text.column" layer="2" recompute-Height="true">
<content content-src="body" /><style id="normal" /><padding sides="10" ends="5" />Cmargin all="8" />
<location column="columnl" 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>
Cconstraint var="!THIS!.area" value="!THIS ! . hei-ght*!THIS!.width" /></element>
No sistema de AGBDL foi comum criar uma famílianova de modelos para cada contagem de colunas suportada emuma página simples. Uma família de modelos seria selecionadapor uma faixa de larguras de página. Uma família de colunaum de modelos poderia ser usada para páginas estreitas equando a largura de página aumentasse além de um limiar dadoentão o sistema trocaria para uma família de coluna dois.Cada família conteria modelos múltiplos que cobrem combina- ções diferentes e localizações para conteúdo na página. Fre-qüentemente a maioria dos elementos visuais nestas famíliassão os mesmos com a exceção do número de colunas.Esta similaridade entre as famílias pode niveladadefinindo uma grade adaptável que não só redimensiona as co-lunas à medida que a largura de página altera, mas pode tam-bém variar o número de colunas na página. Isto pode ser al-cançado colocando um nó <adaptável> em baixo de um nó defi-nição de grade em um modelo. Quando o nó adaptável estiverpresente a contagem de coluna no nó grade pode servir comoum número máximo de colunas. Uma regra pode ser colocada nonó adaptável para determinar quantas colunas são ativadas em qualquer largura de página dada. Regras podem ser especifi-cadas, por exemplo, MinColumnWidth ou maxColumnWidth. A re-gra de MinColumnWidth pode instruir o modelo a usar o númeromáximo de colunas, que tipicamente todas têm uma largura pa-drão de pelo menos um limiar dado. Considerando que as colu-nas podem ter tamanhos proporcionais diferentes, o tamanhoatual de cada coluna pode ser dividido pelo valor de propor-ção da coluna ao verificar para largura mínima e/ou máxima.
o autor pode dar a qualquer uma ou a todas as co-lunas uma prioridade que controla a ordem em que as colunas são diminuída quando a página não for ampla o bastante in-cluir todas as colunas. Uma prioridade predefinida pode seraplicada quando nenhuma prioridade for especificada. Por e-xemplo, uma prioridade predefinida pode ser ajustada paradiminuir as colunas da direita para a esquerda. Para atribu-ir prioridades diferentes o autor pode incluir um atributode prioridade no nó definição de grade com uma lista delimi-tada por vírgula dos valores de prioridade para atribuir àscolunas da esquerda para a direita. Alternativamente, o au-tor pode incluir um atributo de prioridade nos nós definiçãode coluna da definição de grade. A prioridade é tipicamenteum valor de número inteiro. Para um leiaute de página dado,em geral apenas colunas com um valor de prioridade menor ouigual ao número de colunas ativas é incluído.
Quando colunas adaptáveis são diminuídas de umainstanciação do modelo, o sistema de restrição em geral cai-rá a coluna para largura zero. Elementos que têm uma largurazero no tempo de leiaute tipicamente não consumirá conteúdoou contribuirá para a contagem do modelo. Se um elemento a-travessar múltiplas colunas, o elemento mais provavelmenteapenas parecerá atravessar aquelas colunas que estão ativasem qualquer leiaute dado.
Às vezes um projetista gostaria de colocar um ele-mento na coluna mais à esquerda ou à direita de uma páginacom colunas adaptáveis. Para torna isto fácil, nós localiza-ção podem reconhecer palavras chaves especiais na coluna a-tributo, por exemplo "mais à esquerda" e "mais à direita".
ADAPTAÇÃO DO MODELO AO CONTEÚDO
Modelos podem adaptar a diferentes configuraçõesde conteúdo de vários modos. Modelos de AGBDL poderiam tervárias condições prévias neles colocadas indicando as cir-cunstâncias, incluindo os requerimentos de conteúdo precisosem que cada modelo poderia ser usado. Em contraste, aspectosdo assunto reivindicado podem permitir colocar condiçõesprévias como um todo em elementos individuais em um modeloalém do modelo. Estas condições prévias de elemento podempermitir condicionalmente incluir elementos em um leiautedependendo do conteúdo disponível, das condições de visuali-zação, ou qualquer outra restrição no sistema. Pode ser útilpenalizar a contagem de objeto do modelo quando um elementoopcional não for usado. Um valor de restrição especial nome-ado, por exemplo, "nome-de-elemento.ativo" pode ser acres-centado automaticamente ao sistema de restrição do modelopara cada elemento. O valor para nome-de-elemento.ativo podeser ajustado, por exemplo, para um quando o elemento for in-cluído no leiaute e zero quando o elemento não for. Este va-lor de restrição pode ser testado para considerar a presençade qualquer elemento determinando a contagem de objeto domodelo. Condições prévias ajustadas em um nó elemento em ge-ral aplicam-se a todas as circunstâncias do elemento. Nóscondição prévia podem também ser colocados dentro de nós Io-calização para adicionar condições prévias adicionais ou a-nular qualquer que é determinada no nó elemento.
Condições prévias de elemento podem permitir con-trolar elementos múltiplos individualmente, mas são freqüen-temente úteis em amarrar o controle de elementos junto, e oselementos podem ser grupados juntos em várias construções,grupos E podem permitir controlar vários elementos por umconjunto simples de condições prévias. Similarmente, gruposOU podem permitir definir vários elementos de leiaute, ape-nas um destes será incluído em qualquer circunstância do mo-delo. Várias opções e/ou algoritmos podem ser suportados pa-ra decidir que circunstância usar quando opções múltiplassão possíveis. 0 algoritmo de Primeiro-Ajuste pode usar oprimeiro elemento no grupo para o qual todas as condiçõesprévias especificas são conhecidas. 0 algoritmo de Melhor-Ajuste pode avaliar cada membro de grupo e usar o elementoque retorna a melhor contagem de leiaute objetiva. O algo-ritmo de Primeiro-Ajuste-Bom pode usar o primeiro elemento no grupo que retorna uma contagem de leiaute acima de um li-miar dado.
É para ser apreciado que o autor deveria usar pre-caução quando projetar modelos com elementos opcionais deforma que as relações de restrição entre os elementos perma- neçam válidas e produzam os resultados desejados se ou nemtodo elemento individual estiver presente em uma instancia-ção dada de um modelo. Elementos de tamanho-fixo podem retersuas dimensões quando não instanciados mas elementos de al-tura-variável, aqueles definidos com recomputeHeight="true",são em geral redimensionados para altura zero. Restriçõesque definem os limites de um grupo OU podem ser especifica-das para ser iguais aos limites seja qual for o elemento demembro é automaticamente selecionado para cada leiaute.
De acordo com outro aspecto, um método de adaptarmodelos ao conteúdo pode ser fornecido. Este método trata deadaptar características de estilo, como tipo e tamanho, aoconteúdo particular. 0 estilo para um bloco de texto podeser atribuído a um elemento de exibição quando o modelo forprojetado. Este tipicamente não é um problema, mas em algu-mas aplicações, como exibir cabeçalhos em uma página de jor-nal, a aparência visual do texto é crítica para sua eficácia.Em jornais impressos, um editor de página escreverá cabeça-lhos para preencher o espaço disponível, controlando a linhaque quebra e equilíbrio. Cabeçalhos aleatórias colocados aolongo de colunas de tamanhos divergentes freqüentemente que-brarão pobremente e/ou não preencherão as linhas, criandoleiautes de qualidade ruim.
De acordo com outro aspecto do assunto reivindica-do, esta dificuldade pode ser mitigada permitindo o estilono modelo adaptar ao conteúdo disponível no tempo de exibi-ção. 0 projetista pode especificar uma lista de possíveisestilos para usar com um elemento dado, e a máquina de Iei-aute pode tentar cada um, gerando uma contagem objetiva paracada. O estilo que produz a melhor contagem mais freqüente-mente será usado no leiaute atual. Porém, o mesmo texto ecombinação de modelo provavelmente selecionarão estilos di-ferentes para dimensões de página diferentes. Método paraavaliar leiaute de texto pode ser empregado para determinaro melhor estilo. Por exemplo, os resultados de uma função decontagem de quebra de linha ótima, escalados pelo tamanho dafonte do estilo particular, podem ser utilizados. A quebrade linha ótima mede o espaço em branco que permanece em cadalinha, expresso como várias larguras de caráter. Consideran-do que a largura de caráter usualmente depende do tamanho dafonte, sem escalação, as fontes maiores tenderiam produzircontagens menores (melhores).
REPRESENTAÇÃO DE DOCUMENTO
Representação de documento vem sendo expandida pa-ra permitir a exibição de dados tirados de uma ampla varie-dade de fontes em uma forma de qualidade alta. Os documentossão tipicamente estruturados identicamente ao sistema deAGBDL original (debatido abaixo), mas com capacidades adi-cionadas .
Uma vez que não há nenhum formato padrão para da-dos na internet, suporte para tradução rápida de fontes de dados através de, por exemplo, XSLT. XSLT é um sistema quetraduz um documento original (em geral um documento em XML)em um documento de resultado novo aplicando uma série de re-gras especificadas por um arquivo de tradução. Quaisquer da-dos de XML arbitrários podem ser transformados em um docu- mento que pode depois ser exibido dado um conjunto de mode-los apropriados que podem ser referenciados pelo documentoresultante. Desse modo quaisquer dados em XML, página de re-de que formou bem fonte de XML, ou outro tipo de dados capazde tradução automática, podem ser carregados diretamente da internet se uma tradução de XSLT existir.
Um usuário pode especificar um arquivo de traduçãocomo um parâmetro para nosso espectador junto com uma traje-tória de documento ou Localizador de Recurso Universal (URL)Alternativamente, um usuário pode associar uma trajetória ou prefixo de URL com um arquivo de tradução colocando uma en-trada em um registro, como um sistema operacional de regis-tro. Esta associação pode facilitar a transformação de XSLTa ser automaticamente aplicada ao documento de entrada sem-pre que a trajetória nomeada ou um URL começar com o prefixo que é carregado.
Convencionalmente, limitação um de traduções deXSLT é que elas apenas operarão em XML bem formado, que mui-tas páginas de rede em HTML não são. Um usuário pode especi-ficar um programa de tradução alternativo, como um raspadorde rede, que pode pré-processar os dados especificados antesde analisá-los gramaticalmente, portanto. Em algumas aplica-ções exemplares, um raspador de rede especializado e umatradução de XSLT que operam na saida do raspador são empre-gados para produzir o documento final.
A estrutura básica de um documento usualmente or-ganiza o conteúdo em uma coletânea de fluxos de conteúdo quepodem definir as seqüências ordenadas de dados. Conteúdo po-de ser um fluxo de texto, imagens ou itens compostos, quepodem conter uma coletânea de sub-fluxos de sua própria co-locação recursivamente usando sub-modelos. Um modelo que e-xibe elementos compostos em geral tem que prover uma listade modelos que podem ser usados para dispor os fluxos indi-viduais do elemento composto.
É freqüentemente útil ter flexibilidade providapara a maneira em que o conteúdo externo é incluído em umdocumento. Maior parte de qualquer fluxo de conteúdo em umdocumento pode ser um fluxo externo que pode ser carregadode uma trajetória ou URL providos. Adicional ou alternativa-mente, referências externas podem ser especificadas para i-tens individuais de conteúdo em um fluxo de conteúdo simplesVirtualmente todas referências externas podem ter uma tradu-ção de XSLT associada ou outro agente de pré-processamentoespecificado com a ligação. Maior parte de qualquer documen-to referenciado pode ser carregada completamente como um i-tem de composto ou então fluxos individuais podem ser extra-ídos do documento. Por exemplo, em um agregador de notíciaspodería-se ter uma coletânea de fluxos contendo histórias denoticias individuais carregadas de fontes individuais, e de-pois um fluxo simples que extrai cada um de seus cabeçalhospara construir uma tabela de conteúdo.
Embora não fornecido no sistema de AGBDL, os as-pectos do assunto reivindicado podem introduzir o conceitode um sub-documento, que pode ser definido como um elementocomposto que inclui sua própria lista de modelos de exibição.Um sub-documento pode usar seus próprios modelos quando fo-rem transmitidos ao invés de modelos especificados no mode-lo-pai. Virtualmente com a inclusão de sub-documentos, podequalquer documento agora ser pensado como uma hierarquia dedocumentos pai e filho.
Em cada nó na árvore de documento o projetista po-de selecionar se o documento pai ou filho controla o leiauteprovendo os modelos. Não é sempre desejável ter isto sejauma escolha de tudo ou nada. Do contrário, haja métodos ge-rais para influenciar o leiaute de um sub-documento do mode-lo-pai. Um modo é para o pai sobrepor a folha de estilos domodelo-filho. Em um documento agregado modelado após um jor-nal típico, é usualmente desejável variar o estilo de cabe-çalhos de forma que eles sejam facilmente diferenciadosquando aparecerem lado a lado. 0 modelo-pai pode assegurarisso passando as folhas de estilos diferentes para os ele-mentos em que as histórias aparecerão.
Outro método para influenciar o leiaute de um do-cumento-filho é através de passagem de parâmetros. Parâme-tros passados para modelos-filhos podem ser entrados no sis-tema de restrição do filho antes do modelo ser instanciado.Os valores de parâmetro podem ser derivados do sistema derestrição do pai ou podem ser especificados diretamente. Es-tes valores de restrição passados podem ser usados em qual-quer número de modos pelo documento-filho. Eles podem serincluídos em condições prévias para elementos individuais nosub-modelo, ou pode ser referenciados por outras restriçõesque controlam a localização e dimensionamento dos elementos.Em outros exemplos usamos parâmetros para suprimir a exibi-ção de gráficos grandes em sub-documentos não-caracterizados,mas os incluir quando for exibido como um documento de nívelsuperior ou como um sub-documento em um papel caracterizado.Pode-se também usar parâmetros para alinhar característicasem um sub-documento com características na página-pai ou emoutro sub-documento. Os projetistas podem similarmente espe-cificar valores de retorno de um sub-modelo que pode ser en-trado no sistema de restrição do modelo-pai após o sub-modelo ser avaliado.
Uma característica de sub-documentos e elementoscompostos é que eles podem agora ser paginados independente-mente. Páginas sucessivas de um sub-documento podem ser a-cessadas virando as páginas do sub-documento no lugar, oupode ser dispostas em páginas sucessivas do documento-pai. 0primeiro método pode permitir um usuário ler uma história denotícias inteira sub-documentada em uma primeira página-paisem saltar para uma página interior. Pode também permite umíndice ser maior que o espaço alocado em sua página mas ain-da ter todos de seus dados acessíveis. Outros usos podem in-cluir, por exemplo, propagandas de multi-página ou barraslaterais que residem em uma página simples do pai.
MODELOS E ELEMENTOS NÃO-RETANGULARES
Modelos tanto no sistema de AGBDL original como nainovação em questão são em geral definidos como retânguloscom uma origem, largura e altura. Porém, há muitas ocasiõesquando um elemento não-retangular é desejado. Tal funciona-lidade pode ser realizada em um modelo simples através deformação de camadas dos elementos em uma ordem ζ onde seçõesde elementos de camada alta são diferenciadas dos elementosde camada inferior, as quais eles sobrepõem. Elementos podemser avaliados em ordem de camada descendente. Antes de cadaelemento ser disposto, as regiões de GDI de todos elementospreviamente dispostas podem ser subtraídas da região de GDIdo elemento atual. Isto pode ser feito com uma operação sim-ples se as regiões dos elementos completados forem acumula-das por, por exemplo, operações de união que as dispõem emuma região simples à medida que cada uma é completada. Estaoperação pode permitir qualquer texto em elementos posterio-res fluir para outros elementos de sobreposição ao redor,embora as imagens tipicamente ainda estejam fechadas. Regi-ões de elemento não são usualmente subtraídas diretamentedas regiões em sub-modelos, porém. Do contrário, a união a-cumulada das regiões de elemento pode ser passada aos sub-modelos em camadas inferiores, e esta região-pai pode semeara região acumulada naqueles sub-modelos. Desta maneira, otexto pode fluir ao redor de elementos de sobreposição emmodelos de nível mais altos.A subtração da região-pai pode manipular parte dadificuldade de sobrepor sub-modelos mediante refluxo do tex-to, mas é também desejável evitar fechar imagens ou sub-modelos no filho. Desse modo, não há nenhum modo fácil parafluir imagens para fora do caminho, do contrário é determi-nado se um elemento está fechado (parcial ou completamente) ,e reflete isso na contagem objetiva do elemento. Se o autordo modelo seleciona incluir a contagem do elemento na conta-gem do modelo total, então o modelo pode ser desconsideradose outro modelo estiver disponível sem elemento fechado. Naalternativa ou além disso, várias localizações podem ser in-cluídas para o elemento fechado em um modelo em um grupo OUde melhor-ajuste em cujo caso uma localização não-fechada emgeral será selecionada se uma estiver disponível.
Elementos fechados são detectados diferenciando aregião-pai da região de GDI do elemento, e depois comparandoa região resultante ao original. Um autor de modelo pode in-cluir um atributo em qualquer elemento que especifica umapenalidade a ser aplicada à contagem objetiva do elemento seuma sobreposição ocorrer quando for disposta.
Em outro aspecto, a região-pai pode ser empregadapara fornecer flexibilidade adicional nos documentos. A re-gião-pai pode inicializar o modelo de nível, superior da re-gião de recorte de sistema da janela de aplicação de um sis-tema operacional. Isto pode permitir o sistema fluir textode documento ao redor de janelas de sobreposição de outrasaplicações no topo da área de trabalho, e potencialmente mu-dar as imagens fechadas de seu modo. Os melhores resultadospodem ser obtidos inflando qualquer região de sobreposiçãoligeiramente para fornecer uma margem próxima a qualquertexto refluxado.
Os procedimentos descritos acima podem permitir sub-documentos ocupar elementos não-retangulares, mas estesainda nem são sempre suficientes para produzir um leiaute dequalidade alta. Em uma primeira página de jornal, por exem-plo, pode-se querer prominentemente caracterizar uma foto-grafia de uma história introdutória, e a união da fotografia e o resto do artigo pode não formar um retângulo conveniente.Embora um retângulo de limitação sempre possa ser desenhadoao redor dos elementos, é freqüentemente difícil de projetarum modelo que possa ter regiões grandes ou irregulares sub-traídas ainda se pareça como é intencionado. Esta dificulda-de pode ser solucionada mais facilmente formando um grupo Ede vários elementos, em que todos os elementos consomem oconteúdo de um item de conteúdo de composto simples ou sub-documento. Isto pode permitir dispor um sub-documento efi-cazmente em uma região de qualquer forma arbitrária. No e-xemplo da história caracterizada em uma página de jornal,foi desejado que um elemento consumisse do fluxo de fotogra-fia e o outro elemento consumisse todo o outro. Para estecaso comum, um atributo de consumeRemainder pode ser reco-nhecido e empregado. Um projetista pode colocar este atribu-to em um elemento em um grupo E, que fala para o sistema u-sar todo do conteúdo naquele elemento que não foi consumidopor outros membros do grupo do elemento.
DESAFIOS D0MÍNI0-ESPECÍFIC0SNesta seção, algumas das dificuldades especificaspara dispor agregações de conteúdo são descritas, como tam-bém algumas das técnicas desenvolvidas para tratar destasdificuldades.
EQUILÍBRIO DE COLUNA
Ao dispor múltiplas histórias ou artigos em umleiaute de multi-coluna, pode haver muitas opções para comodispor as histórias em relação umas às outras. Um modo comumpara dividir uma página (ou porção de uma página) entre duashistórias é dividir a página horizontalmente, colocando asegunda história abaixo do fundo da primeira. Quando usandoeste tipo de leiaute, tem-se que distribuir o conteúdo uni-formemente entre as colunas divididas para ele, de forma quecada coluna termine na mesma posição vertical.
Na implementação, isto pode ser alcançado por meiode um algoritmo de leiaute iterativo simples, desencadeadoquando um grupo de elementos (e grupo E) representando ascolunas na página é marcado com a propriedade de balanceCo-lumns. Abaixo, é descrito como este algoritmo iterativo tra-balha para dispor uma história simples e manter seu fundotão uniforme quanto possível.
Primeiro, a página é disposta usando, por exemplo,o método de leiaute voraz padrão. Se o conteúdo preencher apágina completamente, então as colunas são equilibradas eeste leiaute pode ser usado como o resultado final. Do con-trário, o espaço vertical não-usado total deixado nos ele-mentos a ser equilibrados é medido. Esta quantidade total deespaço extra pode ser dividida pelo número de colunas paradar uma suposição inicial para a quantidade que cada colunano resultado equilibrado será sub-preenchida. Em seguida,esta medição sub-preenchimento vertical pode ser subtraídado fundo dos elementos, para render uma localização de corteonde nós esperamos o fundo do texto equilibrado estar. 0fundo novo de cada um dos elementos pode depois ser ajustadoa esta posição de corte calculada para executar o leiautenovamente. Se todo o texto for consumido e o texto for equi-librado (a última coluna é deixada de ser sub-preenchida ematé 1 linha a menos que o número de colunas e ainda é consi-derada "equilibrada"), este leiaute pode ser usado. Porém,se as colunas falharem em ser equilibradas corretamente, aposição de corte pode ser ajustada - elevadas se as últimascolunas estiverem muito escassas, diminuídas se não houverbastante espaço para todo o conteúdo - executando o procedi-mento de leiaute novamente. Este procedimento pode ser ite-rado até convergir em um leiaute equilibrado.
Por fim, o fundo novo para os elementos pode serajustado para estar logo abaixo de qualquer conteúdo dispos-to naquele elemento. Isto pode impedir os elementos de teruma altura imprevisível com base no valor de corte exato quea repetição convergiu.
PARÁGRAFOS IRROMPÍVEIS E SUB-DOCUMENTOS ATÔMICOS
Para algumas situações, pode não fazer sentidoquebrar um pedaço do conteúdo em um limite de página. Porexemplo, quando o conteúdo for meramente um sumário de umaoração, atravessando 2 ou 3 linhas, pode ser preferível mo-ver apenas o pedaço inteiro para a próxima página. No casoespecífico de uma primeira página semelhante a jornal, podehaver muitas caixas pequenas que servem como destaques dasseções interiores ou outras do jornal. Os conteúdos destascaixas pequenas são tipicamente sumários curtos de históriasindividuais, como descrito acima. Usualmente parece muitomelhor evitar dividir estes breves sumários ao longo de li-mites da página. Desse modo, para realizar isto, quaisquerpedaços grossos de conteúdo podem ser marcados com uma pro-priedade que significa "não dividir este pedaço do conteúdoao longo de página ou limites de elemento", ou elementos po-dem ser marcados com outra propriedade que significa "apenasaceite itens de conteúdo que podem ser completamente exibidoaqui.". o conteúdo em questão pode ser um parágrafo indivi-dual, ou um item de composto que contém fluxos múltiplos dedados, talvez representando uma fotografia e legenda ou umabarra lateral.
INTERATIVIDADE
Documentos eletrônicos não necessitam ser restrin-gidos a imitar documentos de papel. Adaptar automaticamenteàs dimensões de tela diferentes é algo que os documentos depapel não podem fazer, mas até mesmo após o tamanho de exi-bição for fixado, o documento não necessita assumir todas aspropriedades dos documentos de papel. Por exemplo, os assi-nantes de conteúdo foram acostumados muito tempo usar hiper-vínculo em documentos em série, mas há outros modos que umleitor pode interagir com um documento eletrônico também.
Como parte da interatividade, hiper-vínculos podemser suportadas em documentos, e vínculos podem ser alvejadospara outros documentos. Isto inclui documentos nativos e do-cumentos que podem ser traduzidos no tempo de carregamentocomo descrito na seção de "Representação de Documento" acimaUm hiper-vinculo pode conter uma referência a uma traduçãode XSLT ou outro programa auxiliar, além da trajetória ouURL do conteúdo alvo. Hiper-vinculos podem também referenci-ar URLs que não são legíveis, em cujo caso um navegador derede pode ser lançado para exibir o conteúdo quando o víncu-lo for ativado. Por fim, hiper-vínculos podem também apontarpara conteúdo interno para o documento em cujo caso aquelapágina contendo a referência pode ser exibida.
Ao ativar um hiper-vínculo em um documento compos-to (por exemplo, um documento que contém sub-documentos), hávários possíveis comportamentos. Se o vínculo estiver no do-cumento de nível superior então o documento inteiro pode sersubstituído pelo documento referenciado. Se o vínculo esti-ver em um sub-documento, pode ser desejável substituir ape-nas o sub-documento com o documento referenciado. Isto é ti-picamente o comportamento predefinido do sistema, mas o pro-jetista pode especificar qualquer elemento de sub-documentocomo um elemento "lançador", que pode levar um vínculo ati-vado naquele elemento a substituir o documento de nível su-perior ou outro sub-documento do contrário indicado. Estacaracterística pode ser útil para um sub-documento implemen-tar um índice ou uma tabela de conteúdo. Um autor faz um e-lemento lançador ajustando o atributo "lançador" em verda-deiro em qualquer nó elemento ou localização. Elementos delançador podem facilitar os documentos ligados a substituiro documento de nível de topo a menos que o atributo "alvo"seja também determinado no elemento. 0 atributo "alvo" podeser ajustado ao nome de outro elemento no modelo, e o docu-mento ligado pode depois substituir o sub-documento corren-temente exibido no elemento nomeado.
Outro modo de ativar vínculos é arrastar e soltaros vínculos nos elementos de sub-documento na página. Em umapágina que contém uma coletânea de múltiplos sub-documentos,como, por exemplo, um jornal, um usuário pode assim tiraruma história de um índice e soltar em uma das localizaçõesde história na página.
RESULTADOS
Vários documentos/aplicações foram descritos quedemonstram a faixa e potência da inovação em questão. As a-plicações incluem uma versão adaptável da revista on-lineSlate, um leitor de noticias que tira histórias da alimenta-ção de RSS do New York Times, raspa o conteúdo inteiro deseu sítio de rede, e exibe as histórias no formato de umjornal de folha grande, e um front-end para o agregador denotícias da internet MSN NewsBot que faz solicitações de ba-se de dados na internet para recuperar as atualizações denotícias rompidas correntes de milhares de fontes de rede, epode operar como um portal de primeira página adaptável paraagregar sub-documentos adaptáveis individuais. Outras imple-mentações podem incluir, por exemplo, um front-end de MSNSearch que apresenta resultados de pesquisa em uma exibição adaptável de qualidade alta.
A demonstração da implementação da revista Slatefoi construída usando o sistema de modelo de AGBDL. Ela re-quereu 74 modelos para implementar páginas que cobrem 1 a 3leiautes de colunas. 0 demonstrativo do New York Times usa osistema de modelo novo e implementa leiautes de 1 a 6 colu-nas mas requer apenas 5 modelos. Cada um dos cinco modelos écerca de um quarto do tamanho dos modelos produzidos para ademonstração de Slate.
Referindo agora à FIG. 1, um sistema 100 que faci-lita adaptar um leiaute de documento que pode ser exibido em tamanhos e dimensões múltiplos com uma ampla variedade deconteúdo é descrito. Em geral, o sistema 100 pode incluiruma interface 102 que recebe um modelo 104. 0 modelo 104 po-de ser uma descrição de nível alto de restrições para umleiaute de documento. A máquina de leiaute 106 pode inter-pretar o modelo 104 e, com base nas restrições de nível altodo modelo 104, determinar onde colocar o conteúdo 108 dentrode um documento para produzir um documento de qualidade alta110.
Como detalhado acima, um documento de qualidadealta é um documento em que a saída exibida é determinada pa-ra parecer boa dadas as dimensões de exibição presentes e oconteúdo. A determinação se a saída exibida parece boa podeser com base nos efeitos visuais gerais como também outrosatributos debatidos em mais detalhes com referência às FIGS.3 e 6, infra. Conseqüentemente, a máquina de leiaute 106 ti-picamente requer conhecimento anterior do(s) tipo(s) de con-teúdo a ser disposto(s) e as dimensões de exibição do arran-jo antes de criar o leiaute de qualidade alta 110. Porém,será apreciado que o modelo 104 não necessita ter conheci-mento anterior e tipicamente não tem conhecimento anteriorou do(s) tipo(s) de conteúdo ou das dimensões de exibiçãoquando o modelo 104 é criado ou quando o modelo 104 é rece-bido pela máquina de leiaute 106.
Voltando agora para a FIG. 2, um sistema 200 emgeral compreendendo uma interface do usuário 202, um modelo104 e um armazenamento de modelo 204 é ilustrado. A interfa-ce do usuário 202 pode facilitar a criação, projeto e/ou mo-dificação dos modelos, como modelo 104. Similarmente, o ar-mazenamento de modelo 204 pode armazenar modelos como modelo104. É para ser apreciado que a interface do usuário 202 oupode ser com base em texto ou uma interface gráfica do usuá-rio (GUI) que pode ser empregada para construir o modelo 104 por meio de parâmetros de restrição de nivel alto e pode serprovido armazenamento para o modelo 104 por meio, por exem-plo, do armazenamento de modelo 204. Deve também ser apreci-ado que embora apenas um modelo simples 104 seja descrito naFIG. 2, a interface 102 pode ser empregada para criar, pro-jetar e/ou modificar qualquer número de modelos 104. Simi-larmente, o armazenamento de modelo 204 pode armazenar umapluralidade de modelos 104 que podem ser recuperados pelainterface do usuário 202 a ser modificada e/ou provida, porexemplo, para a máquina de leiaute 106 (FIG. 1) ou o pagina-dor 602 (FIG. 6).
O modelo 104 pode consistir em vários parâmetros,como uma definição dos elementos de tela para um leiaute(por exemplo, construções de nivel alto que descrevem os e-lementos como também provendo para qual(is) tipo(s) de con-teúdo aqueles elementos podem ser usados), e um sistema derestrição que pode controlar como os elementos são dispostoscom respeito um ao outro (por exemplo, os sobre e sob-comandos descritos supra). Conseqüentemente, o modelo 104fornece uma linguagem de nivel alto que pode ser empregadapara especificar muitos aspectos diferentes de um leiaute.Como também, esta linguagem de nivel alto pode ser uma lin-guagem de descrição mais natural, mais fácil para autorarenquanto ao mesmo tempo capaz de expressar conceitos maisvastos com menos declarações. Além disso, esta linguagem denivel alto pode ser traduzida em uma descrição de nivel bai-xo como descrito em mais detalhes com respeito à FIG. 5 a-baixo.
Referindo agora à FIG. 3, um sistema 300 que emgeral inclui a máquina de leiaute 106 capaz de produzir oleiaute de qualidade alta 110 é descrito. Como descrito aci-ma, a máquina de leiaute 106 pode receber um modelo (nãomostrado) que fornece restrições de nivel alto a ser aderi-das na criação do leiaute de qualidade alta 110. Porém, amáquina de leiaute 106 tem que dispor de fato do conteúdo108 de modo que o arranjo adere às restrições de sobreposi-ção do modelo como também as condições necessárias de formaque a saida seja um leiaute qualidade alta 110.
Tipicamente, a máquina de leiaute 106 examinará otipo e/ou tipos de conteúdo 108 como também as dimensões deexibição para o leiaute de qualidade alta 110 antes de de-terminar como dispor o conteúdo 108. Em alguns casos (porexemplo, dependendo do(s) tipo(s) de conteúdo ou outros fa-tores), a máquina de leiaute 106 pode empregar outras consi-derações como fluxo semântico 302, identidade da marca 304,correlação de item e texto 306 e temas de propaganda 308. Emalgumas circunstâncias, um leiaute não será um leiaute dequalidade alta 110 a menos que pelo menos um de fluxo semân-tico 302, identidade da marca 304, correlação de item e tex-to 306 e anunciar temas 308 seja considerado.
Fluxo semântico 302 pode em geral referir-se aossignificados atuais de palavras e, conseqüentemente, tipica-mente contar com o significado de palavras com relação àsoutras palavras. Conseqüentemente, alguns elementos ou tiposde conteúdo 108, como cabeçalhos de jornal, têm uma razãosemântica forte para manter unido palavras para impedir am-bigüidade, embora ainda as dividindo para dispor as palavrasem localizações diferentes pode prover uma solução mais sim-ples para o arranjo de leiaute. Por exemplo, pode haver umarazão de fluxo semântico eficaz 302 para evitar colocar umaquebra de linha logo após um prefixo ou palavra negativos.
A máquina de leiaute 106 pode também considerar aidentidade da marca 304 ao gerar um leiaute de qualidade al-ta 110. Por exemplo, o conteúdo 108 poderia ser uma marcaregistrada que consiste em duas imagens relacionadas que so-brepõem um padrão bem reconhecido ou a marca requer outro conteúdo 108 (por exemplo, a marca registrada de Intel bemconhecida que inclui um redemoinho gráfico, o texto "IntelInside" e quatro tonalidades de áudio) a ser completamenteilustrativo. Se cada imagem e/ou outro conteúdo não for dis-posto corretamente, então o leiaute pode perder alguns dosefeitos e/ou significados que outros meios de projeto comeditores de projeto podem do contrário alcançar.
Além disso, a máquina de leiaute 106 pode tambémconsiderar correlação de item e texto ao criar um leiaute dequalidade alta 110. Por exemplo, jornais em geral fornecerãouma legenda pequena descrevendo os itens. Como bem, imagens(por exemplo, itens) poderiam ter chamadas para indicar ca-racterísticas da imagem ou texto falado pelos caracteres nafotografia. Naqueles casos, é importante considerar a loca-lização de certo texto em relação a um item.
Similarmente, a máquina de leiaute 106 pode consi-derar temas de propaganda 308 na produção de leiaute de qua-lidade alta 110. Temas de propaganda 308 podem contar comquaisquer dos vários exemplos dados acima com relação aositens 302-306, e por razões similares pode requerer análiseadicional pela máquina de leiaute 106. Porém, é para ser a-preciado que temas de propaganda 308 podem requerer condi-ções que poderiam do contrário contradizer as outras consi-derações. É também para ser entendido que os exemplos acimasão meramente ilustrativos e de nenhuma maneira intenciona-dos a ser limitativos. Outras aplicações poderiam ser empre-gadas sem divergir do escopo e espírito desta invenção.
Referindo brevemente à FIG. 4, um sistema 400 quefacilita adaptar um leiaute de documento que pode ser exibi-do em múltiplos tamanhos e dimensões com uma ampla variedadede conteúdo é mostrado. O sistema 400 em geral inclui umamáquina de leiaute 106, conteúdo 108, um leiaute de qualida-de alta 110 e um dispositivo de saida 402. 0 dispositivo desaída 402 pode ser virtualmente qualquer dispositivo capazde exibir conteúdo digital de exibições de pulso montadas,dispositivos portáteis de mão, estruturas digitais, postosde trabalho, exibições montadas em parede e até mesmo exibi-ções muito grandes para outdoors à margem de estrada e cons-truções. Tipicamente, a máquina de leiaute 106 determinará otamanho e dimensão do leiaute de qualidade alta 110 com baseno dispositivo de saída 402.
Voltando agora para a FIG. 5, um sistema 500 queem geral compreende o modelo 104, a máquina de leiaute 106,o conteúdo 108, o leiaute de qualidade alta 110 e uma máqui-na de nível baixo 502 é descrito. A máquina de nível baixo502 pode aplicar o conteúdo 108 a um leiaute baseado em gra-de adaptável com base em restrições de nível baixo. Porém, amáquina de nível baixo 502 não tem a capacidade para aceitarum modelo de nível alto 104, mas, se provido bastante deta-lhe e abstração (por exemplo, pela máquina de leiaute 106) ,a máquina de nível baixo pode produzir um leiaute de quali-dade alta 110. A máquina de nível baixo 502 é descrita abai-xo em detalhes no sistema de AGBDL. Como supra descrito, amáquina de leiaute 106 pode determinar como dispor o conteú-do 108 com base nas restrições de nível alto fornecidas nomodelo 104 (como também com base em condições adicionais, sehouver) para produzir um leiaute de qualidade alta 110. Umavez o leiaute exato é conhecido que produzirá um leiaute dequalidade alta 110, a máquina de leiaute 106 pode tambémtraduzir esta informação em restrições de nível baixo de mo-do que a máquina de nivel baixo 502 possa produzir o leiautede qualidade alta 110.
FIG. 6 ilustra um sistema 600 que facilita adaptarum leiaute de documento que pode ser exibido em múltiplostamanhos e dimensões com uma ampla variedade de conteúdo. 0sistema 600 em geral inclui a interface 102, o modelo 104, amáquina de leiaute 106, conteúdo 108, o leiaute de qualidadealta 110, e um paginador 602. O paginador 602 é descrito in-fra em detalhes na seção de AGBDL; porém, neste contexto o paginador 602 provê um nivel de abstração para a máquina deleiaute 106. Por exemplo, o paginador 602 recebe o conteúdo108 e também comunica com a interface 102 para selecionar omodelo 104 que será usado para o conteúdo 108 dado. É paraser apreciado que o paginador 602 poderia alternativamenterecuperar o modelo 104 diretamente de por exemplo, o armaze-namento de modelo 202 da FIG. 2. A máquina de leiaute 106recebe o modelo 104 e o conteúdo 108 e dispõe o conteúdo 108para produzir um leiaute de qualidade alta 110. Em essência,o paginador 602 pode determinar que modelo 104 a usar para cada documento e/ou cada página do documento e a máquina deleiaute 106 pode determinar como dispor o conteúdo 108 atualde uma maneira que seja consistente com um leiaute de quali-dade alta 110.
Voltando agora para a FIG. 7, um sistema 700 paraproduzir um leiaute de qualidade alta 110 é ilustrado. Emgeral, o sistema 700 inclui uma máquina de leiaute 106 querecebe o conteúdo 108. De acordo com uma modalidade exemplar,o conteúdo 108 pode ser de tipo(s) distinto(s), agregado defontes múltiplas. Por exemplo, conteúdo 108 pode ser recupe-rado de um armazenamento de conteúdo 7 02 como um armazena-mento de dados; meios de fluxo 704 como de um dispositivo dehardware; e conteúdo de rede 706 que pode ser uma ampla va-riedade de tipos de conteúdo. Conseqüentemente, uma vez queo conteúdo 108 pode ser provido de várias fontes, o formatode fonte 708 do conteúdo 108 concebivelmente variará de modoconsiderável. Portanto, a máquina de leiaute 106 pode rece-ber o conteúdo 108 formatado no formato de fonte 708 e podetraduzir o formato de fonte em um formato que a máquina deleiaute 106 possa empregar para produzir um leiaute de qua-lidade alta 110. 0 formato de fonte 708, por exemplo, emXLST, e a tradução podem ser executados automaticamente comosupra descrito.
FIG. 8 ilustra a metodologia 800 de acordo com oassunto reivindicado. Embora, para propósitos de simplicida-de de explanação, as metodologias são mostradas e descritascomo uma série de ações, é para ser entendido e apreciadoque o assunto reivindicado não é limitado pela ordem de a-ções, visto que algumas ações podem ocorrer em ordens dife-rentes e/ou simultaneamente com outras ações daquelas mos-tradas e descritas aqui. Por exemplo, aqueles versados natécnica entenderão e apreciarão que uma metodologia poderáser representada alternativamente como uma série de estadosou eventos relacionados, como em um diagrama de estado. Alémdisso, nem todas as ações ilustradas podem ser requeridaspara implementar uma metodologia de acordo com o assuntoreivindicado. Adicionalmente, deveria ser também apreciadoque as metodologias reveladas doravante e ao longo deste re-latório descritivo são capazes de ser armazenadas em um ar-tigo de manufatura para facilitar o transporte e transferên-cia de tais metodologias para os computadores. 0 termo arti-go de manufatura, como aqui usado, é intencionado abrangerum programa de computação acessível de qualquer dispositivo,veículo, ou meios legíveis por computador.
Com referência agora à FIG. 8, uma metodologia im-plementada em computador exemplar 800 para dispor conteúdo para criar um leiaute de qualidade alta é ilustrado. Em 802,um modelo pode ser selecionado a um leiaute de documento.Tipicamente, o modelo é definido em uma linguagem de nívelalto e pode ser selecionado de um armazenamento de modelopor uma de uma interface, um paginador e uma máquina de Iei-aute. Em 804, um tamanho de exibição pode ser determinadopara o documento. É para ser apreciado que esta determinaçãopossa ser feita com base no tamanho de tela de um dispositi-vo de saída e/ou uma região dentro. Em 806, o conteúdo podeser recebido para o documento. Como previamente descrito, oconteúdo pode vir de uma gama extensiva de fontes como umarmazenamento de conteúdo, meios de fluxo, a Internet, etc.,e pode existir em uma ampla variedade de formatos que podemser incompatíveis com o formato de um leiaute de qualidadealta e, desse modo, requerer tradução apropriada.
Em 808, as localizações disponíveis para o conteú-do específico podem ser determinadas empregando as restri-ções de nível alto providas, por exemplo, por um modelo, co-mo também o tamanho de exibição para o último leiaute dequalidade alta. É para ser apreciado que muitas localizaçõesdisponíveis para o conteúdo específico podem existir. Em 810,uma localização de qualidade alta pode ser selecionada daslocalizações disponíveis determinadas em 808. Como expostoacima, uma localização de qualidade alta é uma em que a lo-calização à qual o conteúdo específico pode ser introduzidoao mesmo tempo mantendo o caráter de qualidade alta do Iei-aute geral. É para ser entendido que selecionando uma loca-lização de qualidade alta pode contar com numerosos crité-rios. Por exemplo, as localizações de qualidade alta podemser determinadas com base em pelo menos um de uma série dealgoritmos como melhor ajuste, primeiro ajuste, primeiro a-juste bom, e outros. Uma tal determinação pode também contarcom outras condições como fluxo semântico, identidade da marca, correlação de item e texto, temas de propaganda, comotambém outros. Na etapa 812, pode ser criado um leiaute dequalidade alta.
SISTEMA DE AGBDL
FIG. 9 exibe uma representação de diagrama de blo-cos de um ambiente leiaute de documento com base em gradeadaptável 900 de acordo com uma modalidade exemplar do as-sunto reivindicado. O ambiente de leiaute de documento base-ado em grade adaptável 900 compreende um sistema de documen-to baseado em grade adaptável 902, unidade de armazenamentode folha de estilo 906, e unidade de armazenamento de modelo908. O ambiente de leiaute de documento baseado em grade a-daptável 900 é suportado por componentes de hardware e soft-ware similares àqueles encontrados nos sistemas de computa-ção, ambientes, e/ou configurações bem conhecidos descritoscompletamente abaixo com referência à FIG. 10. 0 sistema dedocumento baseado em grade adaptável 902 compreende um pagi-nador 602, máquina de nivel baixo 502, ferramenta de autora-ção de modelo 910, e interface do usuário 912.
A unidade de armazenamento de folha de estilo 906comunicativamente conecta ao sistema de documento baseado emgrade adaptável 902 por meio da máquina de nivel baixo 502.A unidade de armazenamento de folha de estilo 906 armazenadados de folha usados para especificar o estilo do textodentro do conteúdo do documento 904. A unidade de armazena-mento de folhas de estilo 906 compreende um dispositivo dememória capaz de armazenar e recuperar dados incluindo, masnão limitados a, memória de acesso aleatório (RAM), memóriainstantânea, dispositivos de memória magnéticos, dispositi-vos de memória ópticos, unidades de disco rígido, dispositi-vos de memória volátil ou não-volátil removíveis, meios dearmazenamento ópticos, meios de armazenamento magnéticos, oucartões de memória RAM. Alternativamente, a unidade de arma-zenamento de folhas de estilo 906 pode compreender uma faci-lidade de armazenamento remota acessível através de um sis-tema de rede com e/ou sem fios. Adicionalmente, a unidade dearmazenamento de folhas de estilo 906 pode compreender umsistema de memória incluindo um sistema de multi-estágio dedispositivos de memória primários e secundários, como des-crito acima. o dispositivo de memória primário e dispositivode memória secundário podem operar como uma memória temporá-ria entre si ou o segundo dispositivo de memória pode servircomo uma reserva para o dispositivo de memória primário. Emainda outro arranjo, a unidade de armazenamento de folhas deestilo 906 pode compreender um dispositivo de memória confi-gurado como um arquivo de base de dados simples ou como umabase de dados pesquisável, relacionai usando uma linguagemde consulta, como SQL.
A unidade de armazenamento de modelo 908 comunica-tivamente conecta ao sistema de documento baseado em gradeadaptável 902 por meio do paginador 602 e da ferramenta deautoração de modelo 910. A unidade de armazenamento de mode-lo 908 armazena uma pluralidade de modelos 1106, em que cadamodelo 1106 pode ser usado para definir o leiaute de uma pá-gina simples do conteúdo de documento 904. O leiaute do con-teúdo de documento pode incluir páginas dispostas de acordocom um ou mais modelos 1106. A unidade de armazenamento demodelo 908 compreende um dispositivo de memória similar aosdispositivos de memória descritos acima com referência à u-nidade de armazenamento de folha de estilo 906.
O paginador 602 comunicativamente conecta à máqui-na de nivel baixo 502 e unidade de armazenamento de modelo908. O paginador 602 é configurado com hardware e software(vide FIG. 10) apropriados para executar tarefas e fornecercapacidades e funcionalidade como descritas aqui. Adicional-mente, o paginador 602 pode receber conteúdo do documento904 para processamento em um leiaute baseado em grade adap-tável. O conteúdo do documento 904 pode ser representado poruma variedade de fluxos de conteúdo 1303 que identificam vá-rios tipos de conteúdo como, mas não limitados a, texto decorpo, imagens, figuras em série, barra lateral, legendas,midia, e outro conteúdo de documento apropriado 904. Em ge-ral, o paginador 602 determina um mapeamento do conteúdo dodocumento 904 sobre modelos individuais 1106, que podem in-cluir mas podem não limitados a, o pareamento globalmenteótimo do conteúdo de documento 904 com os modelos 1106.
A máquina de nível baixo 502 comunicativamente co-necta ao paginador 602 e unidade de armazenamento de folhasde estilo 906. A máquina de nível baixo 502 é configuradacom hardware e software (vide FIG. 10) apropriados para exe-cutar tarefas e fornecer capacidades e funcionalidade comodescritas aqui. A máquina de nível baixo 502 pode receberconteúdo do documento 904 e modelos 1106 do paginador 602para processamento. Tipicamente, a máquina de nível baixo502 formata o conteúdo do documento 904 automaticamente pelouso de modelos 1106 (por exemplo, aplica modelos 1106 aoconteúdo do documento 904) e assim cria documentos 914 base-ados em grades adaptáveis. Adicionalmente, a máquina de ní-vel baixo 502 pode ser usada para determinar uma contagem dequalidade para cada parte (por exemplo, cada página) do do-cumento baseado em grade adaptável 914 criado da aplicaçãode modelos 1106 ao conteúdo do documento 904.
Em operação, o sistema de documento baseado emgrade adaptável 902 por meio do paginador 602 recebe o con-teúdo do documento 904 a ser processado e modelos 1106 daunidade de armazenamento de modelo 908. O paginador 602 for-nece o conteúdo do documento 904 e modelos 1106 à máquina denível baixo 502 para transmissão de leiautes de página atu-ais. Em uma modalidade alternativa do assunto reivindicado,a máquina de nivel baixo 502 é comunicativamente conectada àunidade de armazenamento de modelo 908 e, portanto, a máqui-na de nivel baixo 502 recebe os modelos 1106 diretamente daunidade de armazenamento de modelo 908. A máquina de nivelbaixo 502 aplica folhas de estilo da unidade de armazenamen-to de folhas de estilo 906 e modelos 1106 ao conteúdo do do-cumento 904 e determina uma contagem de qualidade com basenos resultados. A máquina de nivel baixo 502 provê ao pagi- nador 602 todas as seqüências de modelo válidas 1106 (porexemplo, todas as seqüências de modelo 1106 que de forma bemsucedida e completamente adaptam-se o conteúdo do documento904 a um leiaute de documento baseado em grade) e suas con-tagens de qualidade correspondentes. O paginador 602 computa qualquer uma seqüência de modelos 1106 desejáveis ou a se-qüência de modelos globalmente ótima 1106 com base nas con-tagens de qualidade fornecidas pela máquina de nivel baixo502. O paginador 602 fornece o conteúdo do documento 109 e aseqüência de modelos ótima 1106 à máquina de nivel baixo 502 após determinar um pareamento de conteúdo com uma seqüênciade modelos 1106. A máquina de nivel baixo 502 automaticamen-te formata o conteúdo do documento 904 de acordo com a se-qüência de modelos ótima 1106. O documento baseado em gradeadaptável 914 resultante é depois fornecido pelo sistema de documento baseado em grade adaptável 902 para o destino a-propriado (por exemplo, exibido ao usuário, fornecido a ou-tro módulo de programa, ou salvo em um arquivo).
A ferramenta de autoração de modelo 910 comunica-tivamente conecta a unidade de armazenamento de modelo 908 euma interface do usuário 912. A ferramenta de autoração demodelo 910 é configurada com hardware e software (vide FIG.10) apropriados para executar tarefas e fornecer capacidades5 e funcionalidade como descritas aqui. A interface do usuário912 provê a um usuário um conjunto de janelas, ícones, co-mandos, e/ou menus para criar ou modificar modelos 1106 den-tro da unidade de armazenamento de modelo 908. Pelo uso daferramenta de autoração de modelo 910 e da interface do usu- ário 912, um usuário pode desenhar e dispor elementos deleiaute, especificar como os elementos adaptam-se a tamanhosde página diferentes, pré-visualiza a adaptação interativa-mente, e determina as condições prévias 1109 do modelo 1106e relações com base em restrição 1115.
Em operação, a interface do usuário 912 apresentauma representação esquemática de um modelo 1106 que pode serinterativamente redimensionado. Criar um elemento de leiautenovo 1112 dentro do modelo 1106, em geral, requer do usuáriodesenhar uma região na exibição de interface do usuário 912e depois manipular a região para um tamanho, posição, e ca-mada desejados. Para manter a integridade dos modelos adap-táveis 1106, a maioria dos elementos 1112 do modelo 1106 re-quer relações com base em restrição 1115.
Enquanto criando ou editando um modelo, o usuário pode especificar restrições de nível de página definindo umagrade de página desenhando guias horizontais ou verticais edepois usando uma interface de arrastar pressionando pararestringir os elementos com relação à grade. Os guias hori-zontais ou verticais podem ser projetados ou para escala re-lativa à página ou manter um recuo constante. Guias podemtambém ser dependentes de outros guias, permitindo um usuá-rio definir uma grade hierárquica. Especificamente, a inter- face do usuário 912 suporta tipos diferentes de operações deusuário incluindo, mas não limitados a: (1) se o usuário a-diciona um guia novo sem selecionar qualquer outro guia pri-meiro, então a posição do guia novo é definida com relação àpágina inteira; (2) se o usuário seleciona um guia existentesimples antes de criar um guia novo, então a posição do guianovo é definida como um recuo constante dos guias seleciona-dos; e (3) se o usuário seleciona dois guias existentes an-tes de criar um guia novo, então a posição do guia novo édefinida com relação aos dois guias selecionados. A interfa- ce do usuário 912 pode também fornecer operações de usuárioque permitem o usuário especificar restrições diretamenteentre os elementos sem o uso de guias. Por exemplo e não li-mitação, o usuário pode restringir o fundo de um elementopara coincidir com o topo de outro elemento. Para tratar si- tuações onde o tamanho de um elemento é determinado peloconteúdo fluido naquele elemento (e não a geometria da pági-na sozinha), o usuário pode utilizar a ferramenta de autora-ção de modelo 910 para restringir uma das dimensões do ele-mento e depois especificar que a outra dimensão seja deter-minada do conteúdo do documento 904.
Após criar um modelo de costume 1106, o usuáriopode especificar condições prévias adicionais com base novalor de qualquer variável em um sistema de restrição. Aconveniência de um modelo 1106 para conteúdo do documento904 depende do uso de condições prévias e uma função de con-tagem. Uma vez um usuário ajusta as fontes de conteúdo de umelemento 1112 do modelo 1106, as condições prévias de conte- údo para um modelo 1106 podem ser automaticamente computadas.Adicionalmente, um usuário pode acrescentar preferências deatributo aos elementos 1112 que influencia a contagem dequalidade que a modelo de página 1106 recebe para uma sele-ção dada do conteúdo do documento 904. Quando o usuário es- pecificar mais de um atributo de um elemento 1112, o usuáriopode classificar os atributos em ordem de importância pormeio da interface do usuário 912.
A ferramenta de autoração de modelo 910 pode de-pois automaticamente construir uma função de contagem que a máquina de nivel baixo 502 avalia para seleções diferentesdo conteúdo do documento 904 que pode ser fluido possivel-mente no elemento. Dada a classificação de atributos especi-ficada pelo usuário em ordem de importância, a ferramenta deautoração de modelo 910 pode associar cada atributo com umdigito na contagem, com dígitos de ordem mais alta que cor-respondem aos atributos mais importantes. Quando a máquinade nível baixo 502 avaliar uma seleção de conteúdo, a conta-gem pode ser computada associando um "1" com todos atributospareados, e um "0" com todos atributos não-pareados. Maisespecificamente, se "al" a "aN" for as N preferências de a-tributo especificadas pelo usuário em ordem de importância,então a função de contagem é construída pelo sistema de au-toria como segue: S = match (al, bl) * (10Λ (N-l) ) + mat-ch(a2,b2)*(10a(N-2)) ... + match(aN,bN)*(10Λ0) , onde S é acontagem de qualidade de uma seleção particular de conteúdoque é avaliado, bl a bN são os valores de atributo atuaisassociados ã seleção de conteúdo, e match(a,b) é uma função que retorna "1" quando "a" é igual a "b" e "0" do contrário.Desse modo, esta função de contagem retorna uma contagem me-lhor ou pior, dependendo quão bem o conteúdo pareia com osatributos especificados pelo usuário. A função de contagemassegura que atributos mais importantes são prioridade rígi- da dada em atributos menos importantes. Por exemplo e nãolimitação, uma seleção de conteúdo que pareia com um atribu-to particular "A" resulta em uma contagem melhor que outrasseleções de conteúdo que não pareia com nenhum atributo "A"mas potencialmente pareia com atributos menos importantes.
Alguém versado na técnica reconhecerá que funçõesde contagem podem ser implementadas em uma variedade de mo-dos. Por exemplo e não limitação, cada atributo de um ele-mento pode ser associado a um digito na contagem final. Aimportância do atributo determina seu digito correspondente, com o atributo mais importante sendo associado ao digitomais significativo. Por conseguinte, um atributo que é o k°atributo mais importante corresponderá com ao k° digito maissignificativo na contagem final. Para uma seleção particularde conteúdo, pode associar a função de contagem um "1" comos dígitos que correspondem aos atributos de pareamento e um"0" com os dígitos que correspondem a não-atributos de pare-amento. Portanto, a função de contagem assegura que um peda-ço do conteúdo que pareia com o atributo mais importante temuma contagem mais alta (isto é, melhor) que qualquer outraseleção de conteúdo que não pareia com o atributo mais im-portante .
Modelos diferentes 1106 dentro de um estilo deleiaute 1103 freqüentemente incluem características comuns(por exemplo, elementos, condições prévias, e restrições).Conseqüentemente, a ferramenta de autoração de modelo 910pode suportar um sistema ou modelo de herança de modelo 1106que simplifica a modificação das características comuns aolongo de vários modelos 1106 sem alterar de fato cada um dosmodelos 1106 individualmente. Por exemplo e não limitação,um usuário pode criar um modelo novo 1106 (por exemplo, ummodelo-filho 1106) que herda características de um modelopreexistente 1106 (por exemplo, um modelo-pai 1106). 0 mode-lo-filho 1106 automaticamente inclui todos os elementos,condições prévias, e restrições do modelo-pai 1106. Em se-guida, o usuário pode acrescentar elementos adicionais, con-dições prévias, e restrições ao modelo-filho 1106 para criaro modelo de costume desejado 1106. Se o usuário quer alteraruma das propriedades que são comuns entre os modelos pai efilho 1106, então o usuário necessita apenas modificar aspropriedades do modelo-pai 1106, porque a modificação propa-gará por meio de herança para todos os modelos-filho 1106 domodelo-pai 1106. O modelo de herança simplifica o gerencia-mento de um número grande de modelos 1106 e ajuda a manterconsistência entre os modelos 1106.
Alguém versado na técnica reconhecerá que conectarcomunicativamente pode incluir qualquer tipo apropriado de68
conexão incluindo, mas não limitado a, canais de comunicaçãoanalógicos, digitais, sem fios e com fios. Tais canais decomunicação incluem, mas não são limitados a, fio de cobre,fibra óptica, freqüência de rádio, infravermelho, satélite,ou outros meios.
FIG. 10 exibe uma representação de diagrama deblocos de um ambiente de computação 1000 e sistemas de com-putador 1010, 1080 destes cujo assunto reivindicado pode u-tilizar de acordo com uma modalidade exemplar deste. O ambi-ente de computação 1000 e sistemas de computador 1010, 1080destes representam apenas um exemplo de um ambiente de com-putação e sistemas de computador adequados para a prática doassunto reivindicado e não são intencionados a sugerir qual-quer limitação sobre o escopo de uso ou funcionalidade, dainvenção. Nem deve os sistemas de computador 1010, 1080 serinterpretados como tendo qualquer dependência ou requerimen-to relativo a qualquer um ou combinação dos componentes i-lustrados no ambiente de computação exemplar 1000.
Conseqüentemente, deveria ser entendido que a in-venção em questão é operacional com numerosos outros ambien-tes de sistema de computação de propósito geral ou de propó-sito especial ou configurações. Exemplos de sistemas de com-putação, ambientes, e/ou configurações bem conhecidos quepodem ser apropriados ou adequados para o uso com o assuntoreivindicado incluem, mas não são limitados a, computadorespessoais, computadores servidores, dispositivos portáteis oulaptops, sistemas de multiprocessador, sistemas com base emmicroprocessador, dispositivos eletrônicos, eletrônicos pro-gramáveis pelo consumidor, computadores pessoais de rede,minicomputadores, mainframes, ambientes de computação dis-tribuídos que incluem qualquer um dos sistemas ou dispositi-vos acima, e outros.
Aspectos do assunto reivindicado podem também serde scritos no contexto geral de compreender instruções execu-táveis por computador, como módulos de programa, sendo exe-cutados por um sistema de computador. Em geral, módulos deprograma incluem rotinas, programas, programação, objetos,componentes, dados, estruturas de dados, etc. que executamtarefas particulares ou implementam tipos de dados abstratosparticulares. As características da invenção em questão po-dem ser praticadas em ambientes de computação distribuídosonde tarefas são executadas por dispositivos de processamen-to remotos que são ligados através de uma rede de comunica-ções. Em um ambiente de computação distribuído, módulos deprograma podem ser localizados em meios de armazenamento decomputador locais e remotos, incluindo, sem limitação, emdispositivos de armazenamento de memória.
Com referência à FIG. 10, um ambiente de computa-ção exemplar 1000 do assunto reivindicado inclui um disposi-tivo de computação de propósito geral na forma de um sistemade computador 1010. Componentes de sistema de computador1010 podem incluir, mas não são limitados a, uma unidade deprocessamento 1020, uma memória do sistema 1030, e um barra-mento do sistema 1021 que acopla vários componentes do sis-tema incluindo a memória do sistema 1030 à unidade de pro-cessamento 1020 para dados bidirecionais e/ou comunicação deinstrução. O barramento do sistema 1021 pode ser quaisquerde vários tipos de estruturas de barramento incluindo umbarramento de memória ou controlador de memória, um barra-mento periférico, e um barramento local usando quaisquer deuma variedade de arquiteturas de barramento. Por via de e-xemplo, e não limitação, tais arquiteturas, incluem barra-mento de Arquitetura Padrão Industrial (ISA), barramento deArquitetura de Micro Canal (MCA), barramento de ISA Otimiza-da (EISA), barramento local da Associação dos Padrões de E-letrônicos de Video (VESA), barramento de interconexão deComponentes Periféricos (PCI) (isto é, também conhecido como"barramento de Mezanino").
Sistema de computador 1010 tipicamente inclui umavariedade de meios legíveis por computador. Meios legíveispor computador podem compreender quaisquer meios disponíveisque podem ser acessados, lidos, ou escritos através do sis-tema de computador 1010 e podem incluir meios voláteis enão-voláteis, removíveis e não-removíveis. Por via de exem-plo, e não limitação, meios legíveis por computador podemcompreender meios de armazenamento de computador e meios decomunicação. Meios de armazenamento de computador incluemmeios voláteis e não-voláteis, removíveis e não-removíveisimplementados em qualquer método ou tecnologia para armaze-namento de informação como instruções legíveis por computa-dor, dados, estruturas de dados, módulos de programa, pro-gramas, programação, ou rotinas. Meios de armazenamento decomputador incluem, mas não são limitados a, RAM, ROM,EEPROM, memória instantânea ou outra tecnologia de memória,CD-ROM, discos versáteis digitais (DVD) ou outro armazena-mento de disco óptico, cassetes magnéticos, fita magnética,dispositivos de armazenamento magneto-ópticos, armazenamentode disco magnético ou outros dispositivos de armazenamentomagnéticos, ou qualquer outro meio que possa ser usado paraarmazenar a informação desejada e que possa ser acessado a-través do sistema de computador 1010. Meios de comunicaçãotipicamente incorporam instruções legíveis por computador,dados, estruturas de dados, módulos de programa, programas,programação, ou rotinas em um sinal de dados modulado comouma onda portadora ou outro mecanismo de transporte e inclu-em quaisquer meios de liberação de informação. 0 termo "si-nal de dados modulado" significa um sinal tendo uma ou maisde suas características determinadas ou alteradas em uma talmaneira a codificar a informação no sinal. Por via de exem-plo, e não limitação, meios de comunicação incluem meios comfios como uma rede com fios ou conexão direcionada com fios,e meios sem fios como acústicos, RF, infravermelho e outrosmeios sem fios. Combinações de qualquer um dos acima é tam- bém inclusa dentro do escopo de meios legíveis por computa-dor .
A memória do sistema 1030 inclui meios de armaze-namento de computador na forma de memória volátil e/ou não-volátil como memória exclusiva de leitura (ROM) 1031 e memó- ria de acesso aleatório (RAM) 1032. Um sistema básico de en-trada/saída 1033 (BIOS), contendo as rotinas básicas que di-recionam a transferência de informação entre os elementosdentro do computador 1010, como durante a inicialização, étipicamente armazenado na ROM 1031. ROM 1032 tipicamente ar-mazena dados e/ou instruções de programa que são imediata-mente acessíveis e/ou presentemente sendo operados atravésda unidade de processamento 1020. Por via de exemplo, e nãolimitação, FIG. 10 ilustra sistema operacional 1034, progra-mas de aplicação 1035, outros módulos de programa 1036, edados de programa 1037 que podem ser residentes na RAM 1032,em todo ou em parte, de tempo-em-tempo.
O computador 1010 pode também incluir outros meiosde armazenamento de computador removiveis/não-removiveis,voláteis/não-voláteis. Por via de exemplo apenas, FIG. 10ilustra uma unidade de disco rígido 1041 que lê ou escreveem meios magnéticos não-removíveis, não-voláteis, uma unida-de de disco magnético 1051 que lê ou escreve em um discomagnético removível, não-volátil 1052, e uma unidade de dis-co óptico 1055 que lê ou escreve em um disco óptico removí-vel, não-volátil 1056 como um CD ROM ou outros meios ópticos.Outros meios de armazenamento de computador de removí-veis/não-removíveis, voláteis/não-voláteis que podem ser in-cluídos no ambiente de computação exemplar 1000 incluem, masnão são limitados a, cassetes de fita magnética, cartões dememória instantânea, discos versáteis digitais, fita de ví-deo digital, RAM de estado sólido, ROM de estado sólido, eoutros. A unidade de disco rígido 1041 é tipicamente conec-tada ao barramento do sistema 1021 através de uma interfacede memória não-removível como interface 1040, e a unidade dedisco magnético 1051 e a unidade de disco óptico 1055 sãotipicamente conectadas ao barramento do sistema 1021 por umainterface de memória removível, como interface 1050.
As unidades 1041, 1051, 1055 e seus meios de arma-zenamento de computador associados descritos acima e ilus-trados na FIG. 10, fornecem armazenamento de instruções Ie-gíveis por computador, dados, estruturas de dados, módulosde programa, programas, programação, ou rotinas para sistemade computador 1010. Na FIG. 10, por exemplo, a unidade dedisco rígido 1041 é ilustrada como armazenando o sistema o-peracional 1044, programas de aplicação 1045, outros módulosde programa 1046, e dados de programa 1047. Note que estescomponentes ou podem ser iguais ou diferentes do sistema o-peracional 1034, programas de aplicação 1035, outros módulosde programa 1036, e dados de programa 1037. Sistema opera-cional 1044, programas de aplicação 1045, outros módulos deprograma 1046, e dados de programa 1047 são números diferen-tes dados para ilustrar que, a um mínimo, eles são cópiasdiferentes do sistema operacional 1034, programas de aplica-ção 1035, outros módulos de programa 1036, e dados de pro-grama 1037. Um usuário pode entrar os comandos e informaçãono sistema de computador 1010 através de dispositivos de en-trada conectados como um teclado 1062 e dispositivo de apon-tamento 1061, comumente referido como um mouse, trackball oumesa de toque. Outros dispositivos de entrada conectados(não mostrados) podem incluir um microfone, joystick, acio-nador de jogo, disco satélite, escâner, ou outros. Estes eoutros dispositivos de entrada são freqüentemente conectadosà unidade de processamento 1020 através de uma interface deentrada de usuário 1060 que é acoplada ao barramento do sis-tema 1021, mas pode ser conectado por outra interface e es-truturas de barramento, como uma porta paralela, porta dejogo ou um barramento serial universal (USB). Um monitor1091 ou outro tipo de dispositivo de exibição é também co-nectado ao barramento do sistema 1021 por meio de uma inter-face, como uma interface de vídeo 1090. Além do monitor 1091,sistema de computador 1010 pode também incluir outros dispo-sitivos de saída periféricos como alto-falantes 1097 e im-pressora 1096 que podem ser conectados através de uma inter-face de saída periférica 1095.
o sistema de computador 1010 pode operar em um am-biente em rede usando ligações de conexão de comunicação bi-direcionais a um ou mais sistemas de computador remotos, co-mo um sistema de computador remoto 1080. 0 sistema de compu-tador remoto 1080 pode ser um computador pessoal, um laptop,um computador servidor, um roteador, um PC de rede, um dis-positivo semelhante ou outro nó de rede comum, e tipicamenteinclui muitos ou todos os elementos descritos com relação aosistema de computador 1010 acima, embora apenas um disposi-tivo de armazenamento memória 1081 do sistema de computadorremoto 1080 tenha sido ilustrado na FIG. 10. As ligações deconexão de comunicação bidirecionais descritas na FIG. 10incluem uma rede local (LAN) 1071 e uma rede de longa dis-tância (WAN) 1073, mas podem também incluir outras redes.Tais redes são comuns em escritórios, redes de computador degrandes empresas, intranets e a Internet.
Quando comunicativamente conectado a uma LAN 1071,o sistema de computador 1010 conecta à LAN 1071 através deuma interface ou adaptador de rede 1070. Quando comunicati-vamente conectado a uma WAN 1073, o sistema de computador1010 tipicamente inclui um modem 1072 ou outros meios paraestabelecer uma ligação de comunicação na WAN 1073, como a Internet. O modem 1072 que pode ser interno ou externo podeser conectado ao barramento do sistema 1021 por meio da in-terface de entrada do usuário 1060, ou outro mecanismo apro-priado. Em um ambiente em rede, módulos de programa descri-tos com relação ao sistema de computador 1010, ou porçõesdestes, podem ser armazenados no dispositivo de armazenamen-to de memória remoto 1081. Por via de exemplo, e não limita-ção, FIG. 10 ilustra programas de aplicação remotos 1085 co-mo residindo no dispositivo de armazenamento de memória 1081É para ser apreciado que as conexões de rede mostradas sãoexemplares e outros meios de estabelecer uma ligação de co-municação bidirecional entre os computadores podem ser usa-dos .
FIG. 11 exibe uma representação de diagrama deblocos de um leiaute de documento incluindo estilos de Iei- aute adaptáveis 1103 e modelos 1106 de acordo com uma moda-lidade exemplar do assunto reivindicado. Conteúdo de docu-mento 904 é formatado em um leiaute de documento particularpelo uso de modelos 1106 (por exemplo, às vezes referido a-qui como "modelos adaptáveis 1106") armazenados na unidadede armazenamento de modelo 908. Cada modelo 1106 é responsá-vel para definir o leiaute para uma página simples de conte-údo ao longo de uma faixa de dimensões de página. Na modali-dade exemplar do assunto reivindicado, o modelo 1106 suportaum protocolo por meio do qual o conteúdo de documento alter-nativo (por exemplo, uma versão mais ampla de uma imagem ouum ótimo desenho) pode ser selecionado automaticamente semelhorar o leiaute de página geral do documento. Também, ca- da modelo 1106 é projetado para adaptar a uma faixa de di-mensões de exibição, como também a outros tipos de condiçõesde visualização, como um aumento em tamanho da fonte.
Cada modelo 1106, adicionalmente, pode compreenderelementos de leiaute 1112, relações com base em restrição 1115, e condições prévias 1109. Um elemento de leiaute 1112representa uma região particular dentro da página do modelo1106 em que conteúdo pode ser colocado. Uma relação baseadaem restrição 1115 do modelo 1106 ajuda a definir as relaçõesentre os elementos 1112. Uma condição prévia 1109 do modelo1106 caracteriza a conveniência do modelo 1106 pelo conteúdoparticular de um documento ou as características de uma pá-gina. Os elementos de leiaute 1112, relações com base emrestrição 1115, e condições prévias 1109 são descritos com-pletamente abaixo com referência à FIG. 12.
Em uma modalidade do assunto reivindicado, é des-crito leiaute de documento usando um conjunto de modelos1106. Quando o conteúdo do documento 904 for aplicado aosmodelos 1106, um documento baseado em grade adaptável 914 éproduzido em um ótimo formato. Por exemplo, o sistema pre- sente pode suportar uma ampla faixa de estilos de leiautecom base em grade modernos como projetos usados para o NewYork Times, New Yorker, Washington Post, Newsweek, ou revis-ta Time. Cada um do estilo de leiaute 1103 (por exemplo, àsvezes referido aqui como um "estilo de leiaute adaptável1103") é definido por uma coletânea de modelos 1106 que im-plementa as características particulares do estilo de leiau-te particular 1103.
Como ilustrado na FIG. 11, um estilo de leiauteadaptável 1103A é representado por um conjunto de modelosIIO6A1, 1106An. A elipse entre o modelo adaptável "Ai" IIO6A1e o modelo adaptável "AN" 1106AN ilustra que uma pluralidadede modelos adaptáveis 1106 pode existir dentro de estilo deleiaute adaptável "AN" 1103AN e, portanto, o estilo de lei-aute adaptável "AN" 1103AN não é limitado aos dois modelosIIO6A1 adaptáveis, 1106AN como mostrado na FIG. 11. Similar-mente, a elipse entre o modelo adaptável "Zi" 1106ZÍ e o mo-delo adaptável "ZN" 1106ZN ilustram que uma pluralidade de modelos adaptáveis 1106 pode existir dentro de estilo deleiaute adaptável "Ζ" 1103Z e, portanto não é limitado aosdois modelos 1106ZÍ, 1106ZN como mostrado na FIG. 11. Adi-cionalmente, um estilo de leiaute adaptável 1103AN pode com-preender um número diferente de modelos adaptáveis 1106 queoutro estilo de leiaute adaptável 1103Z.
Os estilos de leiaute adaptáveis 1103 são armaze-nados na unidade de armazenamento de modelo 908. Cada leiau-te adaptável 1103 identifica um conjunto de modelos 1106 as-sociados entre eles. A elipse entre o estilo de leiaute a-daptável "AN" 1103AN e o estilo de leiaute adaptável "Z"1103Z ilustra que uma pluralidade de estilos de leiaute a-daptáveis 1103 pode existir dentro da unidade de armazena-mento de modelo 908 e, portanto, não é limitado aos dois es-tilos de leiaute adaptáveis 1103AN, 1103Z como mostrados naFIG. 11. Por exemplo e não limitação, os estilos de leiauteadaptáveis 1103 e modelos adaptáveis 1106 podem ser repre-sentados dentro do assunto reivindicado por XML.
FIG. 12 exibe uma representação de diagrama deblocos de um modelo adaptável 1106 de acordo com uma modali-dade exemplar do assunto reivindicado. Cada modelo adaptável1106 dentro da unidade de armazenamento de modelo 908 podecompreender elementos de leiaute 1112, relações com base emrestrição 1115 para definir relações entre os elementos 1112,e condições prévias 1109 que caracterizam a conveniência domodelo 1106 pelo conteúdo particular de um documento.
Um elemento de leiaute 1112 representa uma regiãoparticular dentro da página do modelo 1106 em que conteúdopode ser colocado. Tipicamente, os elementos 1112 dentro deum leiaute de documento baseado em grade são regiões retan-gulares da página do modelo 1106. Cada elemento de leiaute1112 compreende uma variável de fluxo de fonte especificado1209, variável de colocação de ordem z de elemento 1212, evariável de modelos de leiaute 1215. A variável de fluxo defonte especificado 1209 especifica que o conteúdo pode serusado dentro do elemento 1112. Por exemplo e não limitação,a variável fluxo de fonte especificado 1209 pode especificarque apenas uma imagem pode ser colocada dentro do elemento1112 do modelo 1106. Em uma modalidade alternativa do assun-to reivindicado, elementos múltiplos 1112 usam conteúdo domesmo fluxo de conteúdo 1303 (descrito abaixo com referênciaà FIG. 13). Em um tal arranjo, um fluxo é estabelecido e oconteúdo do fluxo de conteúdo 1303 é distribuído de um ele-mento 1112Αχ para o próximo elemento 1112A2.
A variável de colocação de ordem ζ de elemento1212 de um elemento 1112 permite cada elemento 1112 especi-ficar seu lugar em uma ordem ζ do elemento 1112. Em geral,elementos 1112 que são mais altos na ordem ζ ficam sobre oselementos 1112 inferiores dentro do leiaute de documento e,por conseguinte, a região de área dos elementos mais altos1112 é subtraída da região de área dos elementos mais baixos 1112. Em efeito, a variável de colocação de ordem ζ de ele-mento 1212 permite projetos de página com base em grade terelementos de sobreposição 1112, ou regiões que parecem re-cortar as regiões de outros elementos 1112. Por exemplo, otexto em um leiaute de documento pode fluir em volta de uma figura. A figura está em uma ordem ζ mais alta que o texto e,desse modo, a figura parece recortar alguma da região reser-vada para o texto. Passar o texto ao redor de uma figura ouimagem é uma técnica usada dentro de leiautes de documentocom base em grade.
A variável de modelos de leiaute 1215 permite cadaelemento 1112 especificar um modelo de leiaute 1106 (ou umacoletânea de modelo de leiautes 1106) que pode ser usada pa-ra átomos de conteúdo de leiaute. Um átomo de conteúdo com-preende um item de conteúdo 1306 que é composto de múltiplos fluxos de conteúdo 1303 (por exemplo, texto, figuras, ou i-magens). Mais especificamente, um átomo de conteúdo compre-ende um agrupamento lógico de conteúdo que contém um ou maiselementos 1112 ou fluxos de conteúdo 1303 de um ou mais ti-pos de conteúdo todos destes são considerado ser um itemsimples em algum item de conteúdo-pai 1306. Por exemplo enão limitação, o elemento 1112 pode representar uma barralateral que inclua texto, figuras, e imagens. Através da va- riável de modelos de leiaute 1215, o modelo 1106 pode com-pletamente suportar leiaute recursivo e, desse modo, podesuportar toda de uma combinação de figura/captura para embu-timento recursivo do conteúdo.
As relações baseadas em restrição 1115 (por exem- pio, às vezes referidas aqui como "restrições 1115") de ummodelo 1106 podem ser usadas pelo menos parcialmente paradefinir as relações entre os elementos 1112. O tamanho e co-locação de cada elemento 1112 em um modelo 1106 são determi-nados avaliando um conjunto de relações baseadas em restri- ção 1115 interdependentes se, quando consideradas juntas,formar um gráfico aciclico direcionado. As relações baseadasem restrição 1115 compreendem variáveis de entrada de res-trição 1218 e variáveis de saida de restrição 1221 cujos va-lores são determinados por uma expressão matemática em ter- mos de outras variáveis, de restrição 1218, 1221. Adicional-mente, as relações baseadas em restrição 1115 compreendemvariáveis de restrição internas 1224 cujos valores podem serusados quando computar valores pelas variáveis de saida derestrição 1221. Alguém versado na técnica reconhecerá que este tipo de configuração é conhecido como um "sistema derestrição unidirecional". Na modalidade exemplar do assuntoreivindicado, porém, cada modelo 1106 codifica relações bi-dimensionais entre os elementos de leiaute 1112 como restri-ções 1115 que devem ser solucionadas para avaliar um leiauteparticular.
As variáveis de entrada de restrição 1218 instruemo modelo 1106 a cerca do contexto no qual o modelo 1106 seráusado. Por exemplo e não limitação, as variáveis de entradade restrição 1218 podem indicar as dimensões de largura e dealtura do modelo 1106 ou de um elemento 1112 dentro do mode-lo 1106. Adicionalmente, a variável de entrada de restrição1218 pode incluir atributos de costume (por exemplo, atribu-tos definidos por um usuário através da ferramenta de auto-ração de modelo 910) com relação ao conteúdo de documento.
Em aspectos do assunto reivindicado, um sistema de restrição(não mostrado) pode ser representado por um fundo geral derestrições que podem ser usadas como variáveis de entrada derestrição 1218 e variáveis de saída de restrição 1221. Quan-do atributos de costume estiverem presentes dentro do conte-údo do documento 904, os atributos de costume podem ser adi-cionados como variáveis adicionais dentro do sistema de res-trição. As variáveis de saída de restrição 1221 representamvários atributos de saída de documento incluindo, mas nãolimitados a, o limite retangular de cada elemento 1112 e acontagem do modelo 1106 que permite um modelo 1106 expressarsua aptidão em termos do conteúdo a ser inserido dentro domodelo 1106 (descrito em mais detalhe abaixo com referênciaà FIG. 10).
As condições prévias 1109 de um modelo 1106 pelomenos parcialmente caracterizam a conveniência do modelo1106 pelo conteúdo particular de um documento. Cada modelo1106 usa condições prévias 1109 para expressar quando o mo-delo 1106 é válido quando aplicado ao conteúdo de documento.Por exemplo, um modelo 1106 pode ser válido se o modelo 1106puder ser de forma bem sucedida aplicado ao conteúdo de do-cumento. Alguém versado na técnica reconhecerá que condiçõesprévias diferentes podem ser usadas para determinar que mo-delos 1106 são válidos e que modelo 1106 é inválido. O sis-tema de leiaute de documento baseado em grade adaptável 902usa as condições prévias 1109 durante a paginação (descritoem mais detalhe abaixo com referência à FIG. 19). As condi-ções prévias 1109 podem compreender uma ou mais condiçõesprévias de variáveis de conteúdo 1203 e/ou uma ou mais con-dições prévias de variáveis de valor 1206. Uma variável decondições prévias de conteúdo 1203 indica a quantidade de conteúdo de um fluxo de dado de conteúdo 1303 que deve estarpresente para preencher o modelo 1106 ou um elemento 1112adequadamente dentro do modelo 1106. A variável de condiçõesprévias de valor 1206 indica a faixa de valores que uma va-riável de restrição dada 1218, 1221 tem que cair. Por exem- pio e não limitação, a variável de condições prévias de con-teúdo 1203 e a variável de condições prévias de valor 1206podem indicar que um modelo 1106 particular é válido se oconteúdo de documento contiver exatamente duas figuras dis-poníveis para exibição e se as dimensões de página do conte- údo de documento caírem em algum lugar entre dimensões depágina de carta e A4 padrões.
FIG. 13 exibe uma representação de diagrama deblocos de um conteúdo do documento 904 incluindo fluxos deconteúdo 1303 de acordo com uma modalidade exemplar do as-sunto reivindicado. Conteúdo do documento 904 é representadodentro da invenção em questão como um conjunto de fluxos deconteúdo individuais 1303, cada um destes contém conteúdo que é disposto seqüencialmente. Fluxos de conteúdo 1303 re-presentam partes diferentes, logicamente independentes dodocumento incluindo, mas não limitados a, texto de corpo,barra lateral, figuras, cotações de puxar, e créditos de fo-tografia. Fluxos de conteúdo 1303 compreendem itens de con-teúdo 1306 que são descritos completamente abaixo com refe-rência à FIG. 14. Como ilustrado pela elipse, o conteúdo dodocumento 904 não é limitado ao número de fluxos de conteúdo1303A, 1303B, 1303Z mostrados na FIG. 13. Similarmente, aselipses ilustram que um fluxo de conteúdo 1303A não é Iimi-tado ao número de itens de conteúdo 1306Ai, 1306A2, 1306ANmostrados na FIG. 13.
FIG. 14 exibe uma representação de diagrama deblocos de um fluxo de conteúdo 1303 incluindo itens de con-teúdo 1306 de acordo com uma modalidade exemplar do assunto reivindicado. Como descrito acima com referência à FIG. 13,fluxos de conteúdo 1303 compreendem itens de conteúdo 1306.Itens de conteúdo 1306 incluem, mas não são limitados a,texto, imagens, áudio, video, e outros tipos de conteúdo a-propriados. Cada item de conteúdo 1306 é associado à marca-ção padrão (por exemplo, XML) para indicar a estrutura. Alémda marcação padrão, cada item de conteúdo 1306 pode ser ano-tado com atributos de costume 1409 que alteram a forma que oitem de conteúdo 1306 é tratado pela máquina de nivel baixo502 e modelos 1106. Por exemplo e não limitação, um item deconteúdo 1306 que representa uma imagem pode ter um atributo1409 que significa a importância da imagem dentro do leiautede documento. Conseqüentemente, a máquina de nivel baixo 502que utiliza o item de conteúdo 1306 dentro de um modelo 1106pode verificar o valor do atributo 1409 para determinar quãogrande fazer a imagem no leiaute final. A elipse entre atri-buto "Aia" 1409AiA e atributo "Aiz" 1409Aiz ilustram que umapluralidade de atributos 1409 pode existir dentro do item deconteúdo "Ai" 1306Ai e, portanto, o item de conteúdo "Ai"1306Ai não é limitado aos dois atributos 1409AiA, 1409AiZ co-mo mostrado na FIG. 14. Similarmente, a elipse entre o atri-buto "Ana" 14 0 9 Ana e atributo "ANZ" 1409ANZ ilustra que umapluralidade de atributos 1409 pode existir dentro do item deconteúdo "AN" 1306AN e, portanto, o fluxo de conteúdo "AN"1306An não é limitado aos dois atributos 1409Ana, 1409ANZ co-mo mostrado na FIG. 14.
Na modalidade exemplar do assunto reivindicado,itens de conteúdo de texto 1306Ai, podem incluir identifica-dores de estilo 1412AiA, 1412Aiz para especificar o estilo dotexto dentro do conteúdo do documento 904. Identificadoresde estilo 1412 são tipicamente representados por uma lingua-gem de folha de estilos como, mas não limitada a, folhas deestilo em cascateamento (CSS) ou linguagem de estilo exten-sivel (XSL). Alguém versado na técnica reconhecerá que umalinguagem de folha de estilos permite um usuário a definircomo os elementos de texto diferentes aparecerão dentro deum documento (por exemplo, fonte, estilo de fonte, e tamanhoda fonte). Conseqüentemente, os identificadores de estilo1412 podem ser associados às regras de formatação em um ar-quivo de folha de estilos separado que é armazenado na uni-dade de armazenamento de folhas de estilo 906. A elipse en-tre o identificador de estilo "AiA" 1412A1A e o identificadorde estilo "Aiz" 1412A1Z ilustra que uma pluralidade de iden-tificadores de estilo 1412 pode existir dentro do item deconteúdo "Ai" 1306Ai e, portanto, o item de conteúdo "Ai"1306Ai não é limitado aos dois identificadores de estilo1412Aia, 14 12AiZ como mostrado na FIG. 14. Similarmente, aelipse entre o identificador de estilo "Ana" 1412ANA e o i-dentificador de estilo "ANZ" 1412Anz ilustra que uma plurali-dade de identificadores de estilo 1412 pode existir dentrodo item de conteúdo "AN" 1306AN e, portanto, o item de con-teúdo "An" 13 06AN não é limitado aos dois identificadores deestilo 14 12Ana, 1412Anz mostrados na FIG. 14.
Itens de conteúdo 1306 podem também ser codifica-dos para incluir múltiplas versões 1306A2A, 1306A2B, 1306A2Zde qualquer pedaço do conteúdo. Cada uma das diferentes ver-sões do item de conteúdo 1306A2a, 1306A2B, 1306A2Z é empacota-da dentro um marcador <multi> 1406. Durante o leiaute de do-cumento, o leiaute de sistema de documento baseado em gradeadaptável 902 seleciona uma das versões para usar quandoformatar a página com um modelo 1106. Para ajudar o leiautede sistema de documento baseado em grade adaptável 902, cadauma das versões diferentes do item de conteúdo 1306A2a,1306A2b, 1306A2z pode compreender atributos 1409 que sugeremo uso mais apropriado de cada versão do item de conteúdoparticular 1306A2a, 1306A2B, 1306A2Z. Por exemplo e não limi-tação, uma primeira versão de item de conteúdo "A2" 1306A2apode indicar que a primeira versão do item de conteúdo1306A2a é melhor usada em uma seção de "sumário", enquantouma segunda versão de item de conteúdo "A2" 1306A2B pode in-dicar que a segunda versão do item de conteúdo 1306A2B é me-lhor usada em uma barra lateral. Um modelo 1106 pode sele-cionar a versão do item de conteúdo apropriada 1306A2A,1306A2b, 1306A2z com base em como o modelo 1106 intencionaformatar o conteúdo de documento. Se nenhum atributo 1409existir para definir as versões diferentes de um item deconteúdo 1306, então o leiaute de sistema de documento base-ado em grade adaptável 902 é livre para selecionar a versãoque trabalha melhor para o formato da página atual ou docu-mento. A elipse entre a segunda versão do item de conteúdo"A2" 1306A2b e a versão de ° item de conteúdo "A2" 1306A2Z i-lustra que uma pluralidade de versões do item de conteúdo1306 pode existir dentro do marcador <multi> 1406 e, portan-to, o marcador <multi> 1406 não é limitado às três versõesdo item de conteúdo 1306A2a, 1306A2B, 1306A2Z como mostrado naFIG. 14.
Fluxos de conteúdo 1303A3a, 1303A3b, 1303A3z podemtambém ser aninhados hierarquicamente dentro de um item deconteúdo-pai 1306A3 usando um marcador <átomo> que agrupauma coletânea de fluxos de conteúdo 1303A3A, 1303A3B, 1303A3zjuntos como um átomo de conteúdo dentro de um item de conte-údo-pai 1306A3. A coletânea de fluxos de conteúdo 1303A3a,1303A3b, 1303A3z é depois tratada como um item de conteúdosimples I3O6A3. Elementos de documento como uma barra late-ral são representados inerentemente através dos elementos dedocumento múltiplos (por exemplo, texto, figuras, legenda, erodapé). O marcador <átomo> permite múltiplos fluxos de con-teúdo 1303 serem tratados como um item simples de conteúdopara propósitos de leiaute de documento. Por exemplo e nãolimitação, um marcador <átomo> pode agrupar um fluxo de con-teúdo de "titulo" 1303, fluxo de conteúdo de "figura" 1303,fluxo de conteúdo de "legenda da figura" 1303, fluxo de con-teúdo de "texto descritivo" 1303, e fluxo de conteúdo de"rodapé" 1303 dentro de um item de conteúdo de "barra late-ral" pai 1306. A elipse entre o fluxo de conteúdo 1303A3B eo fluxo de conteúdo 1303A3Z ilustra que uma pluralidade defluxos de conteúdo 1303 pode existir dentro de um item deconteúdo-pai 1306A3 e, portanto, o item de conteúdo-pai1306A3 não é limitado aos três fluxos de conteúdo 1303A3A,1303A3B, 1303A3z como mostrado na FIG. 14.
FIGS. 15A-15B exibem uma representação de fluxo-grama de um método 1500 de aplicar conteúdo do documento 904aos modelos 1106 de acordo com uma modalidade exemplar doassunto reivindicado. A máquina de nivel baixo 502 associa oconteúdo do documento 904 recebido do paginador 602 com osmodelos 1106 da unidade de armazenamento de modelo 908 e asfolhas de estilo da unidade de armazenamento de folhas deestilo 906. O resultado é uma coletânea de leiautes de pági-na potenciais que define o estilo de leiaute do documento.
Após iniciar na etapa 1501, a máquina de nivelbaixo 502 prossegue para a etapa 1503 onde a máquina de ni-vel baixo 502 determina se modelos adicionais 1106 necessi-tem ser avaliados usando o conteúdo do documento 904. Inici-almente, nenhum dos modelos 1106 dentro da unidade de arma-zenamento de modelo 908 terá sido avaliado. Como etapa 1503é repetida, porém, a máquina de nivel baixo 502 consideraráoutros modelos 1106 disponíveis dentro da unidade de armaze-namento de modelo 908 até todos os modelos 1106 terem sidoconsiderados. Alternativamente, a máquina de nível baixo 502avalia todos os modelos 1106 dentro de uma estrutura de da-dos (por exemplo, um arranjo ou vetor) fornecido pelo pagi-nador 602 antes da etapa 1503 (não mostrada), em vez que to-dos os modelos 1106 dentro da unidade de armazenamento demodelo 908. Se na etapa 1503, a máquina de nível baixo 502determina que nenhum modelo adicional 1106 necessita ser a-valiado, então a máquina de nível baixo 502 prossegue para aetapa 1527, descrita abaixo. Porém, se na etapa 1503, a má-quina de nível baixo 502 determina que um modelo adicional1106 necessita ser avaliado, então a máquina de nível baixo502 prossegue para a etapa 1506 onde as condições prévias1109 do modelo 1106 correntemente sendo considerado (por e-xemplo, também referido aqui como "modelo atual 1106") é a-valiado contra o conteúdo do documento 904. Em seguida, naetapa 1509, a máquina de nível baixo 502 determina se o mo-delo atual 1106 é válido para o conteúdo do documento 904sendo considerado.
Se na etapa 1509, a máquina de nível baixo 502 de-termina que o modelo atual 1106 não é válido para o conteúdodo documento 904 sendo considerado, então a máquina de nívelbaixo 502 prossegue para a etapa 1503, descrita acima. Porém,se na etapa 1509, a máquina de nível baixo 502 determina queo modelo atual 1106 é válido para o conteúdo do documento904 sendo considerado, então a máquina de nível baixo 502prossegue para a etapa 1512 onde a máquina de nível baixo502 determina o tamanho e a posição de cada elemento 1112 domodelo 1106 ajustando as variáveis 1218 para a entrada domodelo atual e propagando estes valores em direção do gráfi-co de restrição do modelo atual usando propagação local vo-raz simples.
Depois, na etapa 1515, a máquina de nível baixo502 computa as duas regiões dimensionais da página de leiau-te a ser gerada pelo modelo 1106 e para as quais o conteúdodo documento 904 será fluído. Adicionalmente, a máquina denível baixo 502 apara as regiões de acordo com qualquer so-breposição entre os elementos 1112 ou com base em variáveisde colocação de ordem ζ de elemento 1212. Em seguida, na e-tapa 1518, a máquina de nível baixo 502 flui o conteúdo dodocumento 904 para cada uma das regiões determinadas. A má-quina de nível baixo 502 depois prossegue para a etapa 1521onde a máquina de nível baixo 502 calcula uma contagem demodelo para o modelo 1106 com base em quão bem o conteúdo dedocumento 904 ajusta-se ao modelo 1106 (descrito em mais de-talhe abaixo com referência à FIG. 10). Em seguida, na etapa 1524, a máquina de nível baixo 502 acrescenta o modelo 1106a um conjunto ou seqüência de modelos válidos 1106. A máqui-na de nível baixo 502 depois prossegue para a etapa 1503,descrita acima.Como descrito acima, se a máquina de nível baixo502 na etapa 1503 determina que nenhum modelo adicional 1106necessita ser avaliado, então a máquina de nível baixo 502prossegue para a etapa 1527 onde a máquina de nível baixo502 determina se o conjunto de modelos válidos 1106 está va-zio. Se, na etapa 1527, a máquina de nível baixo 502 deter-mina que o conjunto de modelos válidos 1106 está vazio, en-tão a máquina de nível baixo 502 prossegue para a etapa 1536onde a máquina de nível baixo 502 produz um erro que nenhumconjunto válido de modelos 1106 existe para o conteúdo dodocumento 904. A máquina de nível baixo 502 depois termina aoperação de acordo com o método 1500 na etapa 1533. Porém,se na etapa 1527 a máquina de nível baixo 502 determina queum conjunto de modelos válidos 1106 existe, então a máquinade nível baixo 502 prossegue para a etapa 1530 onde a máqui-na de nível baixo 502 envia o conjunto de modelos válidos1106 e contagens correspondentes ao paginador 602. A máquinade nível baixo 502 depois termina a operação de acordo com ométodo 1500 na etapa 1533.
FIGS. 16A-16C exibe uma representação de fluxogra-ma de um método 1600 de conteúdo de fluxo nos elementos 1112dentro do leiaute de documento de acordo com uma modalidadeexemplar do assunto reivindicado. A máquina de nível baixo502 controla o fluxo de conteúdo em regiões de elemento deacordo com tipo de conteúdo. Em geral, tipo de conteúdo in-clui, mas não é limitado a, imagens, texto, figuras em série,e mídia.
Após iniciar na etapa 1601, a máquina de nívelbaixo 502 prossegue para a etapa 1603 onde a máquina de ní-vel baixo 502 determina se o tipo de conteúdo é uma imagem.Se, na etapa 1603, a máquina de nível baixo 502 determinaque o tipo de conteúdo é uma imagem, então a máquina de ní- vel baixo 502 prossegue para a etapa 1606 onde a máquina denível baixo 502 gradua a imagem para ajustar à região de li-mite do elemento 1112 apropriado. Em seguida, na etapa 1609,a máquina de nível baixo 502 exibe a imagem que foi aparadapela região de conteúdo do elemento 1112. A máquina de nível baixo 502 depois termina a operação de acordo com o método1600 na etapa 1618.
Porém, se na etapa 1603 a máquina de nível baixo502 determina que o tipo de conteúdo não é uma imagem, a má-quina de nível baixo 502 prossegue para a etapa 1612 onde a máquina de nível baixo 502 determina se o tipo de conteúdo étexto. Se, na etapa 1612, a máquina de nível baixo 502 de-termina que o tipo de conteúdo é texto, então a máquina denível baixo 502 prossegue para a etapa 1615 onde a máquinade nível baixo 502 permite o texto fluir para a região de limite do elemento 1112 usando um algoritmo de quebra de li-nha como, mas não limitado a, algoritmo de quebra de linhaótimo de Knuth e Plass. A máquina de nível baixo 502 depoistermina a operação de acordo com o método 1600 na etapa 1618,Porém, se na etapa 1612 a máquina de nível baixo 502 determina que o tipo de conteúdo não é nenhum texto, en-tão a máquina de nível baixo 502 prossegue para a etapa 1621onde a máquina de nível baixo 502 determina se o tipo deconteúdo é uma figura em série (por exemplo, figuras que o-correm dentro do fluxo de texto) . Se, na etapa 1621, a má-quina de nível baixo 502 determina que o tipo de conteúdo éuma figura em série, a máquina de nível baixo 502 prosseguepara a etapa 1624 onde a máquina de nível baixo 502 determi- na se há espaço na região de limite do elemento 1112 paraexibir a figura. Se, na etapa 1624, a máquina de nível baixo502 determina que há espaço na região de limite do elemento1112 para exibir a figura, então a máquina de nível baixo502 prossegue para a etapa 1630 onde a máquina de nível bai- xo 502 coloca a figura na posição de referência especificadae redimensiona a figura para preencher a coluna inteira doelemento 1112. A máquina de nível baixo 502 depois termina aoperação de acordo com o método 1600 na etapa 1633. Do con-trário, se a máquina de nível baixo 502, na etapa 1624, de- termina que a região de limite do elemento 1112 não é de ta-manho suficiente para exibir a figura, então a máquina denível baixo 502 prossegue para a etapa 1627 onde a máquinade nível baixo 502 exibe a figura no próximo elemento 1112do fluxo e redimensiona a figura para preencher a coluna in- teira do próximo elemento 1112. A máquina de nível baixo 502depois termina a operação de acordo com o método 1600 na e-tapa 1633.
Porém, se na.etapa 1621 a máquina de nível baixo502 determina que o tipo de conteúdo não é uma figura em sé- rie, então a máquina de nível baixo 502 prossegue para a e-tapa 1636 onde a máquina de nível baixo 502 determina se otipo de conteúdo é mídia. Se, na etapa 1636, a máquina denível baixo 502 determina que o tipo de conteúdo é mídia,então a máquina de nivel baixo 502 prossegue para a etapa1642 onde a máquina de nivel baixo 502 embute o tipo de mí-dia na posição de referência especificada. A máquina de ní-vel baixo 502 depois termina a operação de acordo com o mé-todo 1600 na etapa 1645. Do contrário, se a máquina de nívelbaixo 502, na etapa 1636, determina que o tipo de conteúdonão é mídia, então a máquina de nível baixo 502 prosseguepara a etapa 1639 onde a máquina de nível baixo 502 gera umerro que indica um tipo de conteúdo inválido. A máquina denível baixo 502 depois termina a operação de acordo com ométodo 1600 na etapa 1645.
FIGS. 17A-17C exibe representações de fluxogramade um método 1700 de elementos de auto-dimensionamento 1112dentro do leiaute de documento de acordo com uma modalidadeexemplar do assunto reivindicado. A máquina de nível baixo502 suporta elementos 1112 que automaticamente ajusta suaaltura encaixar ao conteúdo do documento 904 . Os elementosde redimensionando automático 1112 dependem do tipo de con-teúdo.
Após iniciar na etapa 1701, a máquina de nívelbaixo 502 prossegue para a etapa 1703 onde a máquina de ní-vel baixo 502 determina se o elemento 1112 é um elemento deimagem. Se, na etapa 1703, a máquina de nível baixo 502 de-termina que o elemento 1112 é um elemento de imagem, então amáquina de nível baixo 502 prossegue para a etapa 1706 ondea máquina de nível baixo 502 determina as variáveis de res-trição 1218, 1221 associadas ao elemento 1112 para prover aoelemento 1112 as dimensões de pixel da imagem. Em seguida,na etapa 1709, a máquina de nível baixo 502 computa a rela-ção de aspectos da imagem das dimensões de pixel para deter-minar a altura e largura apropriadas do elemento 1112. A má-quina de nível baixo 502 depois termina a operação de acordo com o método 1700 na etapa 1712.
Porém, se na etapa 1703 a máquina de nível baixo502 determinar que o elemento 1112 não é um elemento de ima-gem, então a máquina de nível baixo 502 prossegue para a e-tapa 1715 onde a máquina de nível baixo 502 determina se oelemento 1112 é um elemento de texto. Se, na etapa 1715, amáquina de nível baixo 502 determina que o elemento 1112 éum elemento de texto, então a máquina de nível baixo 502prossegue para a etapa 1718 onde a máquina de nível baixo502 determina se o elemento 1112 compreende uma marca ou a-tributo predeterminados, como, mas não limitados a, um mar-cador "redimensionar-para-conteúdo". Se, na etapa 1718, amáquina de nível baixo 502 determina que o elemento 1112 nãoé marcado com um marcador "redimensionar-para-conteúdo", en-tão a máquina de nível baixo 502 termina a operação de acor-do com o método 1700 na etapa 1712, porque nenhum redimensi-onamento do elemento 1112 é necessário.
Se a máquina de nível baixo 502, na etapa 1718,determina que o elemento 1112 é marcado com um marcador "re-dimensionar-para-conteúdo", então a máquina de nível baixo502 prossegue para a etapa 1721 onde a máquina de nível bai-xo 502 determina a variável de altura do elemento 1112 parao valor permissível máximo. Em seguida, na etapa 1724, a má-quina de nível baixo 502 determina se o elemento 1112 estácompletamente preenchido com texto. Se, na etapa 1724, a má-quina de nivel baixo 502 determina que o elemento 1112 estácompletamente preenchido com texto, então a máquina de nívelbaixo 502 termina a operação de acordo com o método 1700 naetapa 1730, porque nenhum redimensionamento do elemento 1112é necessário. Porém, se na etapa 1724 a máquina de nívelbaixo 502 determina que o elemento 1112 não está completa-mente preenchido com texto, então a máquina de nível baixo502 prossegue para a etapa 1727 onde a máquina de nível bai-xo 502 restaura a altura do elemento 1112 para a altura atu-al do texto. A máquina de nível baixo 502 depois termina aoperação de acordo com o método 1700 na etapa 1730.
Porém, se a máquina de nível baixo 502 determinaque o elemento 1112 não é um elemento de texto na etapa 1715,então a máquina de nível baixo 502 prossegue para a etapa1727 onde a máquina de nível baixo 502 determina se o ele-mento 1112 é um elemento composto que requer modelos 1106para leiaute. Um átomo de conteúdo representa dois ou maispedaços de conteúdo que, considerados juntos, são considera-dos ser uma unidade atômica. Por exemplo e não limitação,uma imagem e legenda correspondente são conceptualmente a-grupadas juntas como uma "figura capturada" simples. Conse-qüentemente, um elemento composto é um elemento em um modeloque pode aceitar um átomo de conteúdo. A fim de colocar emleiaute os pedaços separados de sub-conteúdo dentro do átomode conteúdo, o elemento composto especifica um sub-modeloseparado que pode ser usado para dispor as subpartes separa-das do átomo de conteúdo na página de leiaute. Se, na etapa1727, a máquina de nível baixo 502 determina que o elemento1112 não é um elemento composto que requer modelos 1106 paraleiaute, então a máquina de nível baixo 502 termina a opera-ção de acordo com o método 1700 na etapa 1730, porque nenhumredimensionamento é requerido.
Porém, se na etapa 1727, a máquina de nível baixo502 determina que o elemento 1112 é um elemento composto querequer modelos 1106 para leiaute, então a máquina de nívelbaixo 502 prossegue para a etapa 1733 onde a máquina de ní-vel baixo 502 usa os modelos 1106 requeridos para elementode leiaute 1112. Um elemento composto pode incluir múltiplositens de conteúdo 1306 ou múltiplos fluxos de conteúdo 1303,como, mas não limitados a, um átomo de conteúdo 1306A3. De-pois, a máquina de nível baixo 502 prossegue para a etapa1736 onde a máquina de nível baixo 502 usa a variável de sa-ída especial 1221 para ajustar a altura final do elemento1112 dentro do modelo 1106. A máquina de nível baixo 502 de-pois termina a operação de acordo com o método 1700 na etapa 1739.
FIG. 18 exibe uma representação de fluxograma deum método 1800 de contagem de um modelo 1106 com base emquão bem o conteúdo de documento 904 ajusta-se ao modelo1106 de acordo com uma modalidade exemplar do assunto rei-vindicado. Para cada modelo 1106 usado o conteúdo do docu-mento de leiaute 904, a máquina de nível baixo 502 calculauma contagem com base em quão bem o conteúdo ajusta-se aomodelo 1106. Uma vez a máquina de nível baixo 502 calcula ascontagens para todos os modelos potenciais 1106, a máquinade nível baixo 502 relata as contagens para o paginador 602que pode usar as contagens, junto com as contagens de modelopara páginas anteriores e subseqüentes de conteúdo, paracalcular uma ótima seqüência de modelos 1106 para usar parapaginar todo o conteúdo do documento 904.
Após iniciar na etapa 1801, a máquina de nívelbaixo 502 prossegue para a etapa 1803 onde a máquina de ní-vel baixo 502 avalia uma saída de restrição variável 1221que compreende uma contagem de modelo do modelo 1106. A má-quina de nível baixo 502 depois prossegue para a etapa 1806onde a máquina de nível baixo 502 determina o número de viú-vas e órfãos dentro do leiaute de página após aplicar o mo-delo 1106. Depois, na etapa 1809, a máquina de nível baixo502 calcula uma contagem para quão bem o conteúdo ajusta-seao modelo 1106, por meio do qual a contagem de qualidade écom base na variável de modelo.contagem e o número de viúvase órfãos no leiaute de página. A máquina de nível baixo 502prossegue para a etapa 1812 onde a máquina de nível baixo502 provê ao paginador 602 a contagem calculada do modelo1106 que o paginador 602 usa em seu cálculo da seqüência fi-nal de modelos 1106. O paginador 602 depois termina a opera-ção de acordo com o método 1800 na etapa 1815.
O paginador 602 produz uma seqüência de modelos1106 e um mapeamento do conteúdo do documento 904 para cadamodelo 1106 na seqüência que a máquina de nível baixo 502pode usar para exibir um documento inteiro. Em uma modalida-de do assunto reivindicado, o sistema de documento baseadoem grade adaptável 902 utiliza algoritmos de paginação múl-tiplos para aplicações diferentes. Conseqüentemente, o sis-tema de documento baseado em grade adaptável 902 pode com-preender um primeiro paginador 602 que rapidamente produzuma paginação válida para adaptação interativa e um segundopaginador 602 que produz uma ótima paginação, mas requermais tempo para operar. O primeiro paginador 602 poderia u-sar um algoritmo "voraz" que sempre usa o primeiro modelo1106 para cada página que aceitará o conteúdo na localizaçãoatual no documento ou poderia selecionar o melhor modelosimples 1106 em cada lugar na seqüência sem avaliar as con-seqüências globais (por exemplo, contagem global) da escolhaO segundo paginador 602 poderia usar técnicas incluindo, masnão limitadas a, criar ótimas paginações aproximadas superi-ores para uma paginação "voraz", mas não garantiu ser ótima,operando em uma série de processos de otimização menores emporções menores (por exemplo, "janelas") do conteúdo do do-cumento 904 .
FIGS. 19A-19D exibe uma representação de fluxogra-ma de um método 1900 de otimamente paginar conteúdo do docu-mento 904 em um leiaute de documento baseado em grade adap-tável de acordo com uma modalidade exemplar do assunto rei-vindicado. Para encontrar uma ótima paginação, o paginador602 tem que medir a eficácia de cada seqüência de modelosválidos 1106, por meio do qual a medida é maximizada por umapesquisa sistemática ou heurística ou através de otimizaçãode restrição. Um paginador de otimização 602 produz uma se-qüência de modelos 1106 e um mapeamento de conteúdo sobrecada modelo 1106 que maximiza alguma medida de qualidade.Por exemplo e não limitação, uma tal medida inclui a métricade "viradas de página totais" que conta o número total deviradas de página que seriam requeridas tanto para ler atra-vés do texto e virar para qualquer conteúdo adicional refe-renciado pelo texto. Na modalidade exemplar do assunto rei-vindicado, uma métrica usada para registrar a eficácia decada seqüência de modelos válidos 1106 inclui o uso do núme-ro total de valor de viradas de página com outras medidasque refletem a qualidade da aparência da página (por exemplo,espaços vazios, aparência estética, trabalhabilidade, ou legibilidade).
Como o algoritmo de programação dinâmica básicousado para avaliar os subproblemas (por exemplo, novos mode-los 1106 em uma série) conta com compreensão tardia para re-gistrar seqüências de subproblemas, um aspecto do assuntoreivindicado reestrutura o algoritmo de forma que a avalia-ção é executada apenas para páginas válidas calculando todosos possíveis pontos terminais de. um subproblema atual (porexemplo, visão à frente). Um aspecto do assunto reivindicadoassegura que quando um subproblema novo é considerado, todosos subproblemas já terão sido solucionados que poderiam pos-sivelmente precedê-lo em uma solução, e a entrada apontandode volta para o antecessor ótimo estará em uma tabela de da-dos. Por conseguinte, se nenhuma entrada em uma tabela dedados existe para um subproblema quando for alcançado, entãoo subproblema pode ser ignorado sem nenhuma computação.
Adicionalmente, uma modalidade do assunto reivin-dicado pode facilmente ser modificado para manipular fluxosde conteúdo adicionais 1303 acrescentando dimensões extras àtabela de dados e laços aninhados adicionais ao algoritmo.Fluxos de conteúdo opcionais 1303 podem também ser processa-dos sem programação adicional tendo modelos 1106 disponíveisque exibem o conteúdo dos fluxos de conteúdo opcionais 1303.
O paginador 602 inclui itens de conteúdo 1306 dos fluxos deconteúdo opcionais 1303 sempre que eles melhoram a paginaçãoótima. Tais fluxos de conteúdo opcionais 1303 e modelos 1106que usam fluxos de conteúdo opcionais 1303, podem melhorar aqualidade de paginação imensamente.
Desempenho de vários aspectos do assunto reivindi-cado é também melhorado podando soluções parciais (por exem-plo, subproblemas já verificados para ser aceitáveis) da ta-bela de dados cuja contagem de qualidade é pior que algumlimiar (por exemplo, às vezes referido aqui como um "limiarde poda"). Porque relativamente poucas soluções aceitáveisexistem, esta poda ajuda a estreitar a lista de seqüênciasde subproblema até o mais ótimo. Por exemplo e não limitação,uma estratégia de poda conservadora inclui o uso da contagemde qualidade que resulta de uma solução de "primeiro-ajuste"(por exemplo, solução "voraz") como o limiar de poda. Uso deuma tal estratégia de poda conservadora tipicamente forneceuma aceleração significativo do processo de paginação e ga-rantias que uma solução sempre será encontrada. Alternativa-mente, uma estratégia de poda otimista seleciona um limiaraproximado, próximo de perfeito e iterativamente altera olimiar se nenhuma solução for encontrada. Quando um númerosignificativo de modelos 1106 existe na unidade de armazena-mento de modelo 908, a probabilidade que uma solução próximade perfeita existir é alto e, portanto, a estratégia de podaotimista fica mais eficaz.
Entradas dentro da tabela de dados representam Io-calizações no documento (por exemplo, pontos terminais dapágina sendo correntemente processada). Também, uma entradana tabela de dados representa a melhor paginação descobertadesde que termine na localização dada nos vários fluxos deconteúdo do documento 1303 que pode ser determinada por um valor de índice da entrada na tabela. A entrada de tabelainclui, mas não é limitada a, a localização na tabela (e,portanto, a localização no documento) da página precedenteno fim de solução parcial ótimo naquela localização, e o mo-delo 1106 usado para transmitir a última página (por exemplo,a página entre a entrada de tabela anterior e a entrada detabela sendo correntemente processada).
O laço mais externo do processo usado pelas moda-lidades do assunto reivindicado atravessa através da tabela,avaliando maior e maior (parcial) soluções ou subproblemas à medida que prossegue. Cada repetição do laço chama a máquinade nível baixo 502 para encontrar o próximo conjunto de pá-ginas (por exemplo, uma página é um modelo 1106 e uma sele-ção de conteúdo; pode existir resultados múltiplos para ummodelo 1106 simples com quantidades diferentes de texto, versões de imagem diferentes, etc.) que pode seguir paraponto terminal atual sob consideração. 0 conjunto resultantede páginas rende um conjunto de pontos terminais para a pró-xima página que é depois propagado adiante pelo paginador602 na tabela de dados (por exemplo, substituindo as entra-das existentes, se a entrada nova tiver uma contagem globalmelhor).
Por exemplo e não limitação, o método 1900 descri-to nas FIGS. 19A-19D pode ser representado pelo pseudo-código fornecido na TABELA 1.
COMEÇAR A PAGINAR;
Inicializar Tabela de Ponto Terminal (colocar uma entrada na localização (0,0) para começo do documento);
PARA cada localização da tabela FAZER:
SE localização contiver entrada válida ENTÃO:CHAMAR Máquina de nivel baixo para gerarlista de pontos terminais para páginas que iniciam a locali-zação de tabela atual;
PARA cada ponto terminal retornado (novo)
FAZER:
Calcular contagem global para fim de se-qüência com ponto terminal novo;
SE contagem for melhor que Limiar de Po-da Limiar ENTÃO:
SE ponto terminal novo não tiver ne-nhuma entrada na tabela ENTÃO:
Adicionar entrada ao ponto ter-minai novo contendo contagem, modelo, e ponteiro anteriorpara localização;
SE NÃO (ponto terminal novo tem entradaanterior na tabela) ENTÃO:
Comparar contagem com a contagem deentrada existente na tabela;
SE contagem for melhor que a contagem deentrada existente ENTÃO:
Substituir entrada na tabela com conta-gem nova, modelo, e ponteiro anterior para localização;
ENDIF;
ENDIF;
ENDIF;
ENDFOR;
ENDIF;
ENDFOR;
Localizar ponteiro anterior da última entrada detabela para obter seqüência de modelo e mapeamento de conte-údo;
TERMINAR DE PAGINAR;
Tabela 1.
Após iniciar na etapa 1901, o paginador 602 pros-segue para a etapa 1903 onde o paginador 602 determina o li-miar de poda para ótima paginação. Alguém versado na técnicareconhecerá que um valor de limiar pode ser determinado emuma variedade de modos, incluindo as técnicas descritas aci-ma .
Em seguida, na etapa 1906, o paginador 602 inicia-liza a tabela de dados vazia com um ponto terminal simplesque representa o começo da primeira página do documento (porexemplo, uma entrada colocando a localização (0, 0) para re-presentar o começo do documento). O paginador 602 depoisprossegue para a etapa 1909 onde o paginador 602 determinase qualquer localização dentro da tabela necessita ser ava-liada. Se, na etapa 1909, o paginador 602 determina que ne-nhuma localização dentro da tabela necessita ser avaliada,então o paginador 602 prossegue para a etapa 1921 onde o pa-ginador 602 rastreia os ponteiros anteriores da última en-trada de tabela para obter o ótimo modelo 1106 seqüência emapeamento de conteúdo. O paginador 602 depois termina a o-peração de acordo com o método 1900 na etapa 1901.
Porém, se o paginador 602, na etapa 1909, determi-na que as localizações dentro da tabela necessitam ser ava-liadas, então o paginador 602 prossegue para a etapa 1912onde o paginador 602 determina se a localização de tabelaatual tem uma entrada válida. A entrada atual é escolhidapelo paginador do conjunto de entradas de tabela não-avaliadas para as quais todas as entradas foram avaliadasque a precedem na tabela. Se, na etapa 1912, o paginador 602determina que a entrada de tabela atual não tem uma entradaválida, então o paginador 602 marca a entrada como avaliadae prossegue para a etapa 1909, descrita acima. Do contrário,se o paginador 602, na etapa 1912, determina que a entradade tabela atual tem uma entrada válida (por exemplo, uma en-trada aceitável que representa modelos que podem ser de for-ma bem sucedida aplicados ao conteúdo de documento), então opaginador 602 prossegue para a etapa 1915 onde o paginador602 chama a máquina de nivel baixo 502 para gerar uma listade pontos terminais para páginas que iniciam na localizaçãode tabela atual.
Em geral, através de uma chamada por um módulo deprograma, a máquina de nivel baixo 502 aplica cada um dosmodelos 1106 dentro da unidade de armazenamento de modelo908 para a porção não processada do conteúdo do documento904 para determinar quais modelos 1106 são modelos 1106 vá-lidos. Se nenhum dos modelos 1106 puder ser usado, então ne-nhum modelo 1106 pode seguir para a localização de tabelaatual e, portanto a entrada de tabela atual não deveria serconsiderada também. Quando a máquina de nivel baixo 502 de-termina que um modelo 1106 pode ser aplicado na localizaçãoatual (por exemplo, acomodará o conteúdo que começa na loca-lização de tabela atual), então a máquina de nivel baixo 502aplica o modelo ao conteúdo para determinar o ponto terminale contagem da página resultante e inclui o ponto terminal nalista de pontos terminais retornados para o paginador 602que pode determinar a contagem global apropriada associada àseqüência nova de modelos 1106.
O paginador 602 depois prossegue para a etapa 1918onde o paginador 602 determina se qualquer ponto terminalretornado na etapa 1915 necessita ser avaliado (por exemplo,se houver uma contagem global calculada para o ponto termi-nal). Se, na etapa 1918, o paginador 602 determina que ne-nhum ponto terminal necessita ser avaliado, então o pagina-dor 602 prossegue para a etapa 1909, descrita acima. Porém,se o paginador 602, na etapa 1918, determina que pontos ter-minais necessitam ser avaliados, então o paginador 602 pros-segue para a etapa 1927 onde o paginador 602 calcula a con-tagem global para o fim de seqüência com o ponto terminalnovo. O paginador 602 depois prossegue para a etapa 1930 on-de o paginador 602 determina se a contagem global calculadaé melhor que o limiar de poda predeterminado. Se, na etapa1930 o paginador 602 determina que a contagem global calcu-lada não é melhor que o limiar de poda predeterminado, entãoo paginador 602 prossegue para a etapa 1918, descrita acima.
Porém, se o paginador 602, na etapa 1930, determi-na que a contagem global calculada é melhor que (por exemplo,maior que) o limiar de poda predeterminado, então o pagina-dor 602 prossegue para a etapa 1933 onde o paginador 602 de-termina se o ponto terminal novo tem uma entrada na tabelade dados. Se, na etapa 1933, o paginador 602 determina que oponto terminal novo não tem uma entrada na tabela de dados,então o paginador 602 prossegue para a etapa 1936 onde o pa-ginador 602 adiciona a entrada na tabela para o ponto termi-nal novo, contendo a contagem global calculada, modelo atual1106, e um ponteiro anterior na localização atual. Depois, opaginador 602 prossegue para a etapa 1918, descrita acima.
Do contrário, se o paginador 602, na etapa 1933,determina que o ponto terminal novo tem uma entrada na tabe-la de dados, então o paginador 602 prossegue para a etapa1939 onde o paginador 602 determina se a contagem globalcalculada é melhor que a contagem armazenada na tabela dedados. Se, na etapa 1939, o paginador 602 determina que acontagem global calculada não é melhor que a contagem arma-zenada na tabela de dados, então o paginador 602 prosseguepara a etapa 1918, descrita acima.
Porém, se o paginador 602, na etapa 1939, determi-na que a contagem global calculada é melhor que a contagemarmazenada na tabela de dados, então o paginador 602 prosse-gue para a etapa 1942 onde o paginador 602 substitui a en-trada armazenada na tabela de dados com o ponto terminal no-vo, contagem global calculada, modelo atual 1106, e um pon-teiro anterior para a localização atual. Em seguida, o pagi-nador 602 prossegue para a etapa 1918, descrita acima.
Referindo agora à FIG. 20, é ilustrado um diagramade blocos esquemático de um sistema de compilação de compu-tador exemplar operável para executar a arquitetura revelada.
O sistema 2000 inclui um ou mais cliente(s) 2002. 0(s) cli-ente (s) 2002 pode(m) ser hardware e/ou software (por exemplo,cadeias, processos, dispositivos de computação). 0(s) clien-te (s) 2002 pode(m) alojar cookie(s) e/ou informação contex-tual associada empregando as características do assunto rei-vindicado, por exemplo.
0 sistema 2000 também inclui um ou mais servi-dor (es) 2004. 0(s) servidor (es) 2004 pode (m) também serhardware e/ou software (por exemplo, cadeias, processos,dispositivos de computação). Os servidores 2004 podem alojarcadeias para executar transformações empregando caracterís-ticas do assunto reivindicado, por exemplo. Uma possível co-municação entre um cliente 2002 e um servidor 2004 pode serna forma de um pacote de dados adaptado para ser transmitidoentre dois ou mais processos de computador. O pacote de da-dos pode incluir um cookie e/ou informação contextual asso-ciada, por exemplo. 0 sistema 2000 inclui uma estrutura decomunicação 2006 (por exemplo, uma rede de comunicação glo-bal como a Internet) que pode ser empregada para facilitarcomunicações entre o(s) cliente(s) 2002 e o(s) servidor(es)2004.
Comuni cações podem ser facilitadas por meio de umatecnologia com fios (incluindo fibra óptica) e/ou sem fios.O(s) cliente (s) 2002 está(ão) operativamente conectado(s) aum ou mais armazenamento(s) de dados cliente 2008 que pode(m)ser empregado(s) para armazenar informação local para o(s)cliente(s) 2002 (por exemplo, cookie(s) e/ou informação con-textual associada). Similarmente, o(s) servidor(es) 2004 es-tá(ão) operativamente conectado(s) a um ou mais armazenamen-to (s) de dados servidor 2010 que pode(m) ser empregado(s)para armazenar a informação local para os servidores 2004.
O que foi descrito acima inclui exemplos do assun-to reivindicado. Claro, não é possivel descrever toda combi-nação concebivel de componentes ou metodologias para propó-sitos de descrever o assunto reivindicado, mas alguém de ha-bilidade usual na técnica pode reconhecer que muitas outrascombinações e permutações do assunto reivindicado são possí-veis. Conseqüentemente, é intencionado que o assunto reivin-dicado abranja todas tais alterações, modificações e varia-ções que caem dentro do espírito e escopo das reivindicaçõesem anexo. Além disso, até a importância que o termo "inclui"é usado na descrição detalhada ou nas reivindicações, é in-tencionado que tal termo seja inclusivo de uma maneira simi-lar ao termo "compreendendo" como "compreendendo" é inter-pretado quando empregado como uma palavra transitiva em umareivindicação.
Claims (20)
1. Sistema que facilita adaptar um leiaute de do-cumento que pode ser exibido em múltiplos tamanhos e dimen-sões com uma ampla variedade de conteúdo, CARACTERIZADO pelofato de que compreende:uma interface (102) que recebe um modelo (104), omodelo é uma descrição de nivel alto de restrições para umleiaute de documento;e uma máquina de leiaute (106) que interpreta omodelo e determina onde colocar o conteúdo (108) para auto-maticamente produzir um leiaute de qualidade alta (110).
2. Sistema, de acordo com a reivindicação 1,CARACTERIZADO pelo fato de que adicionalmente compreende umainterface do usuário que facilita projeto e/ou modificaçãodo modelo por via de parâmetros de restrição de nivel alto eprovê armazenamento do modelo.
3. Sistema, de acordo com a reivindicação 2,CARACTERIZADO pelo fato de que a interface do usuário é umainterface gráfica do usuário (GUI).
4. Sistema, de acordo com a reivindicação 1,CARACTERIZADO pelo fato de que a máquina de leiaute produz oleiaute de qualidade alta com base em pelo menos um de fluxosemântico, identidade da marca, correlação de imagem e texto,e temas de propaganda.
5. Sistema, de acordo com a reivindicação 1,CARACTERIZADO pelo fato de que a máquina de leiaute produz oleiaute de qualidade alta com base no modelo, tipo(s) deconteúdo a ser empregado(s) no leiaute de qualidade alta, edimensões de exibição do leiaute de qualidade alta.
6. Sistema, de acordo com a reivindicação 5,CARACTERIZADO pelo fato de que adicionalmente compreende umdispositivo de saida que exibe o leiaute de qualidade alta,as dimensões de exibição do leiaute de qualidade alta sãocom base no dispositivo de saida.
7. Sistema, de acordo com a reivindicação 5,CARACTERIZADO pelo fato de que as dimensões de exibição doleiaute de qualidade alta são desconhecidas quando o modeloé criado.
8. Sistema, de acordo com a reivindicação 5,CARACTERIZADO pelo fato de que o(s) tipo(s) de conteúdo aser empregado(s) no leiaute de qualidade alta é/são desco-nhecido (s) quando o modelo é criado.
9. Sistema, de acordo com a reivindicação 1,CARACTERIZADO pelo fato de que adicionalmente compreende umamáquina de nível baixo que aplica o conteúdo a um leiautebaseado em grade adaptável com base em restrições de nívelbaixo, a máquina de leiaute determina onde posicionar o con-teúdo para o leiaute de qualidade alta e gera as restriçõesde nível baixo necessárias para a máquina de nível baixoproduzir o leiaute de qualidade alta.
10. Sistema, de acordo com a reivindicação 1,CARACTERIZADO pelo fato de que a máquina de leiaute determi-na onde colocar o conteúdo com base em localizações adequa-das para o conteúdo.
11. Sistema, de acordo com a reivindicação 1,CARACTERIZADO pelo fato de que o leiaute de documento é umleiaute de documento de multi-nivel com um nível de topo eum nível de fundo, a máquina de leiaute determina onde colo-car o conteúdo no nível de fundo com base na posição de con-teúdo colocado no nível de topo.
12. Sistema, de acordo com a reivindicação 1,CARACTERIZADO pelo fato de que o conteúdo empregado no lei-aute de qualidade alta é agregado de fontes múltiplas.
13. Sistema, de acordo com a reivindicação 1,CARACTERIZADO pelo fato de que a máquina de leiaute empregauma Linguagem de Folha de Estilos Extensível para Transfor-mação (XSLT) para traduzir o conteúdo de um formato de fonteque o conteúdo é recebido.
14. Método implementado por computador para disporconteúdo para criar um leiaute de qualidade alta,CARACTERIZADA pelo fato de que compreende:selecionar um modelo para um leiaute de documento(802), o modelo é definido em uma linguagem de nível alto;determinar um tamanho de exibição para um documen-to (804);receber conteúdo para o documento (806);empregar o modelo e o tamanho de exibição para de-terminar as localizações disponíveis para o conteúdo (808);selecionar das localizações disponíveis uma loca-lização de qualidade alta (810) para o conteúdo; ecriar um leiaute de qualidade alta para o documen-to (812) dispondo o conteúdo na localização de qualidade al-ta.
15. Método, de acordo com a reivindicação 14,CARACTERIZADO pelo fato de que adicionalmente compreende de-finir um modelo para um documento em uma linguagem de nivelalto.
16. Método, de acordo com a reivindicação 15,CARACTERIZADO pelo fato de que o tamanho de exibição do do-cumento e o tipo do conteúdo são desconhecidos quando o mo-delo é definido.
17. Método, de acordo com a reivindicação 14,CARACTERIZADO pelo fato de que a determinação das localiza-ções disponíveis para o conteúdo é com base pelo menos emparte nas localizações de outro conteúdo previamente coloca-do dentro do documento.
18. Método, de acordo com a reivindicação 14,CARACTERIZADO pelo fato de que a seleção de uma localizaçãode qualidade alta é com base em um algoritmo, o algoritmo épelo menos um de um algoritmo de melhor ajuste, um algoritmode primeiro ajuste e um algoritmo de primeiro ajuste bom.
19. Método, de acordo com a reivindicação 14,CARACTERIZADO pelo fato de que a seleção de uma localizaçãode qualidade alta é com base em pelo menos um de fluxo se-mântico, identidade da marca, correlação de imagem e texto,e temas de propaganda.
20. Sistema implementado por computador que dispõeconteúdo para criar um leiaute de qualidade alta que podeser exibido em múltiplos tamanhos e dimensões com uma amplavariedade de conteúdo, CARACTERIZADO pelo fato de que com-preende :meios para descrever as restrições de um modelo(104) para um leiaute de documento em uma linguagem de nívelalto;meios para determinar um tamanho de exibição dedocumento (106);meios para receber o conteúdo para o documento(108);meios para determinar as localizações disponíveis(106) para o conteúdo com base no modelo e no tamanho de e-xibição;meios para selecionar das localizações disponíveisuma localização de qualidade alta (106) para o conteúdo; emeios para produzir (106) um leiaute de qualidadealta (110) para o documento colocando o conteúdo na locali-zação de qualidade alta.
Applications Claiming Priority (5)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US72346705P | 2005-10-04 | 2005-10-04 | |
US60/723.467 | 2005-10-04 | ||
US11/343,351 US20070079236A1 (en) | 2005-10-04 | 2006-01-31 | Multi-form design with harmonic composition for dynamically aggregated documents |
US11/343.351 | 2006-01-31 | ||
PCT/US2006/039100 WO2007041703A1 (en) | 2005-10-04 | 2006-10-04 | Multi-form design with harmonic composition for dynamically aggregated documents |
Publications (1)
Publication Number | Publication Date |
---|---|
BRPI0616940A2 true BRPI0616940A2 (pt) | 2011-07-05 |
Family
ID=37903307
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
BRPI0616940-6A BRPI0616940A2 (pt) | 2005-10-04 | 2006-10-04 | projeto de multi-forma com composição harmÈnica para documentos dinamicamente agregados |
Country Status (8)
Country | Link |
---|---|
US (1) | US20070079236A1 (pt) |
EP (1) | EP1941392A1 (pt) |
JP (1) | JP2009510650A (pt) |
KR (1) | KR20080053930A (pt) |
AU (1) | AU2006299329B2 (pt) |
BR (1) | BRPI0616940A2 (pt) |
RU (1) | RU2419856C2 (pt) |
WO (1) | WO2007041703A1 (pt) |
Families Citing this family (151)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2005004629A (ja) * | 2003-06-13 | 2005-01-06 | Hitachi Ltd | ページ生成方法及びその装置 |
US7536636B2 (en) * | 2004-04-26 | 2009-05-19 | Kodak Graphic Communications Canada Company | Systems and methods for comparing documents containing graphic elements |
US7472340B2 (en) * | 2004-12-20 | 2008-12-30 | Microsoft Corporation | Method and computer-readable medium for generating a multiple column layout |
US9275052B2 (en) | 2005-01-19 | 2016-03-01 | Amazon Technologies, Inc. | Providing annotations of a digital work |
IL167283A (en) * | 2005-03-07 | 2007-06-03 | Israel Marmorstein | Methods for printing booklets and booklets printed thereby |
US8438468B2 (en) * | 2005-04-15 | 2013-05-07 | International Business Machines Corporation | Annotation management |
US7644356B2 (en) * | 2005-06-10 | 2010-01-05 | Hewlett-Packard Development Company, L.P. | Constraint-based albuming of graphic elements |
CA2628846A1 (en) | 2005-08-09 | 2007-02-15 | Zalag Corporation | Methods and apparatuses to assemble, extract and deploy content from electronic documents |
US20070094591A1 (en) * | 2005-10-24 | 2007-04-26 | Etgen Michael P | System and method for text legibility enhancement |
US7739592B2 (en) * | 2005-11-10 | 2010-06-15 | International Business Machines Corporation | Delivery, organization, and management of data capture elements |
US8584002B2 (en) * | 2006-01-09 | 2013-11-12 | Apple Inc. | Automatic sub-template selection based on content |
US20070250711A1 (en) * | 2006-04-25 | 2007-10-25 | Phonified Llc | System and method for presenting and inputting information on a mobile device |
US8566418B2 (en) * | 2006-05-04 | 2013-10-22 | Samsung Electronics Co., Ltd | Configurable system for using Internet services on CE devices |
WO2008021832A2 (en) * | 2006-08-09 | 2008-02-21 | Radar Networks, Inc. | Harvesting data from page |
US9672533B1 (en) | 2006-09-29 | 2017-06-06 | Amazon Technologies, Inc. | Acquisition of an item based on a catalog presentation of items |
US8725565B1 (en) | 2006-09-29 | 2014-05-13 | Amazon Technologies, Inc. | Expedited acquisition of a digital item following a sample presentation of the item |
US7865817B2 (en) | 2006-12-29 | 2011-01-04 | Amazon Technologies, Inc. | Invariant referencing in digital works |
US7716224B2 (en) | 2007-03-29 | 2010-05-11 | Amazon Technologies, Inc. | Search and indexing on a user device |
US9665529B1 (en) | 2007-03-29 | 2017-05-30 | Amazon Technologies, Inc. | Relative progress and event indicators |
US8700005B1 (en) | 2007-05-21 | 2014-04-15 | Amazon Technologies, Inc. | Notification of a user device to perform an action |
KR101213235B1 (ko) * | 2007-07-24 | 2012-12-17 | 삼성전자주식회사 | 콘텐트 사용자 또는 콘텐트 제작자가 콘텐트에 삽입되는광고를 선택할 수 있는 콘텐트의 재생/제작 방법 및 장치 |
JP5591702B2 (ja) * | 2007-09-20 | 2014-09-17 | ヴィジブル ワールド インコーポレイテッド | メディアパッケージングのためのシステム及び方法 |
US7831579B2 (en) * | 2007-12-28 | 2010-11-09 | Microsoft Corporation | Adaptive page layout utilizing block-level elements |
US20090199126A1 (en) * | 2008-02-06 | 2009-08-06 | International Business Machines Corporation | Method for automatically organizing toolbars for a software application |
US8266163B2 (en) * | 2008-02-26 | 2012-09-11 | International Business Machines Corporation | Utilizing reference/ID linking in XML wrapper code generation |
US20090254814A1 (en) * | 2008-04-08 | 2009-10-08 | Microsoft Corporation | Per-edge rules and constraints-based layout mechanism |
JP5340048B2 (ja) * | 2008-06-17 | 2013-11-13 | キヤノン株式会社 | 画像処理装置、画像処理方法、およびプログラム |
US8381123B2 (en) * | 2008-06-27 | 2013-02-19 | Microsoft Corporation | Positioning and realizing of virtualized visible content within a viewport |
US8214736B2 (en) * | 2008-08-15 | 2012-07-03 | Screenplay Systems, Inc. | Method and system of identifying textual passages that affect document length |
JP5349879B2 (ja) * | 2008-09-18 | 2013-11-20 | キヤノン株式会社 | 情報処理装置、情報処理方法、プログラム、及び、記憶媒体 |
JP2010097564A (ja) * | 2008-10-20 | 2010-04-30 | Canon Inc | 情報処理装置及びレイアウト処理方法 |
US9087032B1 (en) | 2009-01-26 | 2015-07-21 | Amazon Technologies, Inc. | Aggregation of highlights |
US20100218090A1 (en) * | 2009-02-26 | 2010-08-26 | Universal - Ad Ltd. | Sub-page-based page layout system and method thereof |
US8849873B2 (en) * | 2009-03-18 | 2014-09-30 | Bentley Systems, Incorporated | Specifications automation system and method |
US20100277767A1 (en) * | 2009-04-30 | 2010-11-04 | John Henry Klippenstein | Profit based layouts |
US20110004819A1 (en) * | 2009-07-03 | 2011-01-06 | James Hazard | Systems and methods for user-driven document assembly |
US8832548B2 (en) * | 2009-09-21 | 2014-09-09 | Google Inc. | System and method for selective control of zoom adjustments in an electronic publication |
US9310907B2 (en) | 2009-09-25 | 2016-04-12 | Apple Inc. | Device, method, and graphical user interface for manipulating user interface objects |
EP2480957B1 (en) * | 2009-09-22 | 2017-08-09 | Apple Inc. | Device, method, and graphical user interface for manipulating user interface objects |
US8799826B2 (en) * | 2009-09-25 | 2014-08-05 | Apple Inc. | Device, method, and graphical user interface for moving a calendar entry in a calendar application |
US8832585B2 (en) | 2009-09-25 | 2014-09-09 | Apple Inc. | Device, method, and graphical user interface for manipulating workspace views |
US8766928B2 (en) * | 2009-09-25 | 2014-07-01 | Apple Inc. | Device, method, and graphical user interface for manipulating user interface objects |
US8692763B1 (en) | 2009-09-28 | 2014-04-08 | John T. Kim | Last screen rendering for electronic book reader |
WO2011053282A1 (en) * | 2009-10-28 | 2011-05-05 | Hewlett-Packard Development Company, L.P. | Methods and systems for preparing mixed-content documents |
US8594459B2 (en) | 2009-10-30 | 2013-11-26 | Hewlett-Packard Development Company, L.P. | Arranging secondary images adjacent to a primary image |
US8347238B2 (en) * | 2009-12-16 | 2013-01-01 | Apple Inc. | Device, method, and graphical user interface for managing user interface content and user interface elements by dynamic snapping of user interface elements to alignment guides |
US8381125B2 (en) * | 2009-12-16 | 2013-02-19 | Apple Inc. | Device and method for resizing user interface content while maintaining an aspect ratio via snapping a perimeter to a gridline |
US8683363B2 (en) * | 2010-01-26 | 2014-03-25 | Apple Inc. | Device, method, and graphical user interface for managing user interface content and user interface elements |
US8677268B2 (en) * | 2010-01-26 | 2014-03-18 | Apple Inc. | Device, method, and graphical user interface for resizing objects |
US8539386B2 (en) * | 2010-01-26 | 2013-09-17 | Apple Inc. | Device, method, and graphical user interface for selecting and moving objects |
US8539385B2 (en) * | 2010-01-26 | 2013-09-17 | Apple Inc. | Device, method, and graphical user interface for precise positioning of objects |
US8209630B2 (en) * | 2010-01-26 | 2012-06-26 | Apple Inc. | Device, method, and graphical user interface for resizing user interface content |
WO2011119142A1 (en) * | 2010-03-22 | 2011-09-29 | Hewlett-Packard Development Company, L.P. | Adjusting an automatic template layout by providing a constraint |
US9146913B2 (en) | 2010-03-29 | 2015-09-29 | Bentley Systems, Incorporated | Specifications automation system and method |
US8504915B2 (en) * | 2010-04-12 | 2013-08-06 | Microsoft Corporation | Optimizations for hybrid word processing and graphical content authoring |
US9361130B2 (en) * | 2010-05-03 | 2016-06-07 | Apple Inc. | Systems, methods, and computer program products providing an integrated user interface for reading content |
US20150248698A1 (en) * | 2010-06-23 | 2015-09-03 | Google Inc. | Distributing content items |
US8972879B2 (en) | 2010-07-30 | 2015-03-03 | Apple Inc. | Device, method, and graphical user interface for reordering the front-to-back positions of objects |
US9081494B2 (en) | 2010-07-30 | 2015-07-14 | Apple Inc. | Device, method, and graphical user interface for copying formatting attributes |
US9098182B2 (en) | 2010-07-30 | 2015-08-04 | Apple Inc. | Device, method, and graphical user interface for copying user interface objects between content regions |
JP5323103B2 (ja) * | 2010-09-03 | 2013-10-23 | 三菱電機株式会社 | グラフィカルユーザインタフェース装置 |
US9495322B1 (en) | 2010-09-21 | 2016-11-15 | Amazon Technologies, Inc. | Cover display |
US8717920B2 (en) * | 2010-10-08 | 2014-05-06 | Telefonaktiebolaget L M Ericsson (Publ) | Signalling mechanism for multi-tiered intra-band carrier aggregation |
US20130205199A1 (en) * | 2010-10-25 | 2013-08-08 | Niranjan Damera-Venkata | Variable Template Based Document Generation |
WO2012057804A1 (en) * | 2010-10-30 | 2012-05-03 | Hewlett-Packard Development Company, L.P. | Optimizing hyper parameters of probabilistic model for mixed text-and-graphics layout template |
US20120159314A1 (en) * | 2010-12-16 | 2012-06-21 | Microsoft Corporation | Adaptive content layout |
US9002139B2 (en) | 2011-02-16 | 2015-04-07 | Adobe Systems Incorporated | Methods and systems for automated image slicing |
US9065793B2 (en) | 2011-02-24 | 2015-06-23 | Cbs Interactive Inc. | Rendering web content using pre-caching |
US8788927B2 (en) * | 2011-02-24 | 2014-07-22 | Cbs Interactive Inc. | System and method for displaying web page content |
TWI453658B (zh) * | 2011-02-25 | 2014-09-21 | Esobi Inc | 一種顯示畫面之動態排版方法 |
US9152616B2 (en) * | 2011-04-28 | 2015-10-06 | Flipboard, Inc. | Template-based page layout for web content |
US8866842B2 (en) * | 2011-05-23 | 2014-10-21 | Adobe Systems Incorporated | Adaptive content authoring |
US20130127916A1 (en) * | 2011-05-23 | 2013-05-23 | Justin Van Slembrouk | Adaptive Content Display |
US20130132830A1 (en) * | 2011-07-11 | 2013-05-23 | Adobe Systems Incorporated | Behavior templates |
US9396167B2 (en) | 2011-07-21 | 2016-07-19 | Flipboard, Inc. | Template-based page layout for hosted social magazines |
US9639614B2 (en) | 2011-10-04 | 2017-05-02 | Microsoft Technology Licensing, Llc | Maximizing content item information on a search engine results page |
US9158741B1 (en) | 2011-10-28 | 2015-10-13 | Amazon Technologies, Inc. | Indicators for navigating digital works |
US20130145257A1 (en) * | 2011-12-06 | 2013-06-06 | Google Inc. | Edition Designer |
CN103186519B (zh) * | 2011-12-31 | 2017-04-05 | 北大方正集团有限公司 | 双向排版方法和设备 |
KR101302292B1 (ko) * | 2012-01-05 | 2013-09-03 | (주)이스트소프트 | 렌더링엔진 자동변환을 위한 웹브라우저를 기록한 컴퓨터 판독가능한 기록매체 및 렌더링엔진 자동변환방법 |
US8977956B2 (en) * | 2012-01-13 | 2015-03-10 | Hewlett-Packard Development Company, L.P. | Document aesthetics evaluation |
US20130198658A1 (en) * | 2012-01-20 | 2013-08-01 | Vistaprint Limited | Designing website user controls |
US9990347B2 (en) | 2012-01-23 | 2018-06-05 | Microsoft Technology Licensing, Llc | Borderless table detection engine |
EP2807604A1 (en) | 2012-01-23 | 2014-12-03 | Microsoft Corporation | Vector graphics classification engine |
CA2863522C (en) | 2012-01-23 | 2018-08-28 | Microsoft Corporation | Formula detection engine |
US8847986B2 (en) * | 2012-01-27 | 2014-09-30 | Think-Cell Software Gmbh | Method of solving page layout constraints |
FR2987473B1 (fr) * | 2012-02-23 | 2014-02-14 | Gutenberg Technology | Procede de production d'un contenu multimedia destine a une pluralite de supports de representation |
US20130290837A1 (en) * | 2012-04-30 | 2013-10-31 | James Paul Hudetz | Method and Apparatus for Correcting Document Formatting Based on Source Document |
US20130305144A1 (en) * | 2012-05-09 | 2013-11-14 | Ni Group Limited | Method of Publishing Digital Content |
US20130305145A1 (en) * | 2012-05-09 | 2013-11-14 | Ni Group Limited | A Method of Publishing Digital Content |
JP6010744B2 (ja) * | 2012-05-31 | 2016-10-19 | 株式会社Pfu | 文書作成システム、文書作成装置、文書作成方法、及びプログラム |
JP2014041482A (ja) * | 2012-08-22 | 2014-03-06 | Dainippon Printing Co Ltd | 組版装置、組版方法、および、組版装置用プログラム |
BR112015005059A2 (pt) * | 2012-09-07 | 2017-07-04 | American Chemical Soc | avaliador de composição automatizado |
US9105036B2 (en) * | 2012-09-11 | 2015-08-11 | International Business Machines Corporation | Visualization of user sentiment for product features |
US20140108922A1 (en) * | 2012-10-16 | 2014-04-17 | Theo Gravity | Content layout determination |
US9239931B2 (en) * | 2012-10-19 | 2016-01-19 | Google Inc. | Identifying shared content stored by a service |
US9245209B2 (en) | 2012-11-21 | 2016-01-26 | Xerox Corporation | Dynamic bleed area definition for printing of multi-dimensional substrates |
USD754161S1 (en) | 2012-11-26 | 2016-04-19 | Nero Ag | Device with a display screen with graphical user interface |
US20140149860A1 (en) * | 2012-11-26 | 2014-05-29 | Nero Ag | System and method for presenting a tapestry interface |
US9195643B2 (en) | 2012-12-31 | 2015-11-24 | Appsense Limited | Data driven hierarchical pages |
US20140188942A1 (en) * | 2012-12-31 | 2014-07-03 | Appsense Limited | Data driven hierarchical pages |
US9953008B2 (en) * | 2013-01-18 | 2018-04-24 | Microsoft Technology Licensing, Llc | Grouping fixed format document elements to preserve graphical data semantics after reflow by manipulating a bounding box vertically and horizontally |
US9460056B2 (en) * | 2013-01-22 | 2016-10-04 | Xerox Corporation | Dynamic image layout for personalized packages |
US9946691B2 (en) * | 2013-01-30 | 2018-04-17 | Microsoft Technology Licensing, Llc | Modifying a document with separately addressable content blocks |
US9330070B2 (en) | 2013-03-11 | 2016-05-03 | Microsoft Technology Licensing, Llc | Detection and reconstruction of east asian layout features in a fixed format document |
US9148469B1 (en) * | 2013-03-14 | 2015-09-29 | Google Inc. | Dynamically designing shared content |
US8930897B2 (en) * | 2013-03-15 | 2015-01-06 | Palantir Technologies Inc. | Data integration tool |
US20140331124A1 (en) * | 2013-05-02 | 2014-11-06 | Locu, Inc. | Method for maintaining common data across multiple platforms |
US9529790B2 (en) * | 2013-07-09 | 2016-12-27 | Flipboard, Inc. | Hierarchical page templates for content presentation in a digital magazine |
US9489349B2 (en) * | 2013-07-09 | 2016-11-08 | Flipboard, Inc. | Page template selection for content presentation in a digital magazine |
JP2015036886A (ja) * | 2013-08-13 | 2015-02-23 | ソニー株式会社 | 情報処理装置、記憶媒体、および方法 |
US9953011B1 (en) * | 2013-09-26 | 2018-04-24 | Amazon Technologies, Inc. | Dynamically paginated user interface |
CN106462559B (zh) * | 2014-02-07 | 2019-10-15 | 谷歌有限责任公司 | 任意大小内容项生成 |
US10698591B2 (en) * | 2014-03-31 | 2020-06-30 | Microsoft Technology Licensing, Llc | Immersive document interaction with device-aware scaling |
US20150310390A1 (en) * | 2014-04-23 | 2015-10-29 | Bank Of America Corporation | Aggregation and workflow engines for managing project information |
JP5664813B1 (ja) * | 2014-06-10 | 2015-02-04 | 富士ゼロックス株式会社 | デザイン管理装置及びプログラム |
US9342498B2 (en) * | 2014-06-12 | 2016-05-17 | Synergy Platform Pty Ltd | System and method for generating a design template based on graphical input |
WO2016067098A1 (en) * | 2014-10-27 | 2016-05-06 | Kinaxis Inc. | Responsive data exploration on small screen devices |
US10242069B2 (en) | 2015-03-13 | 2019-03-26 | Microsoft Technology Licensing, Llc | Enhanced template curating |
RU2610241C2 (ru) * | 2015-03-19 | 2017-02-08 | Общество с ограниченной ответственностью "Аби ИнфоПоиск" | Способ и система синтеза текста на основе извлеченной информации в виде rdf-графа с использованием шаблонов |
US20160292130A1 (en) * | 2015-04-02 | 2016-10-06 | International Business Machines Corporation | Legacy document converter for a mobile device |
US20160321218A1 (en) * | 2015-04-27 | 2016-11-03 | Neatly Co. | System and method for transforming image information for a target system interface |
US10839149B2 (en) | 2016-02-01 | 2020-11-17 | Microsoft Technology Licensing, Llc. | Generating templates from user's past documents |
US9922022B2 (en) * | 2016-02-01 | 2018-03-20 | Microsoft Technology Licensing, Llc. | Automatic template generation based on previous documents |
US11238115B1 (en) * | 2016-07-11 | 2022-02-01 | Wells Fargo Bank, N.A. | Semantic and context search using knowledge graphs |
WO2018052978A1 (en) * | 2016-09-14 | 2018-03-22 | Pti Marketing Technologies Inc. | Systems and methods for automatically reformatting publications |
US10817911B2 (en) * | 2016-09-30 | 2020-10-27 | Criteo Sa | Programmatic generation of graphical display source code for a computerized graphical advertisement display |
US10713430B2 (en) * | 2016-11-30 | 2020-07-14 | Google Llc | Systems and methods for applying layout to documents |
US11238084B1 (en) | 2016-12-30 | 2022-02-01 | Wells Fargo Bank, N.A. | Semantic translation of data sets |
US11567930B2 (en) | 2017-04-25 | 2023-01-31 | Sap Se | Adaptive data retrieval with runtime authorization |
US10360473B2 (en) * | 2017-05-30 | 2019-07-23 | Adobe Inc. | User interface creation from screenshots |
JP7007401B2 (ja) * | 2017-06-16 | 2022-01-24 | マイクロソフト テクノロジー ライセンシング,エルエルシー | ルールベースのユーザインタフェース生成 |
CN108509158B (zh) * | 2017-07-25 | 2020-01-03 | 平安科技(深圳)有限公司 | 保单打印方法、装置、存储介质和计算机设备 |
US10902479B2 (en) | 2017-10-17 | 2021-01-26 | Criteo Sa | Programmatic generation and optimization of images for a computerized graphical advertisement display |
JP7129248B2 (ja) * | 2018-07-05 | 2022-09-01 | フォルシアクラリオン・エレクトロニクス株式会社 | 情報制御装置、及び表示変更方法 |
US10901593B2 (en) * | 2018-09-21 | 2021-01-26 | Salesforce.Com, Inc. | Configuring components in a display template based on a user interface type |
JP2020144427A (ja) * | 2019-03-04 | 2020-09-10 | 富士ゼロックス株式会社 | 文書作成装置、及びプログラム |
US11676316B1 (en) | 2019-07-01 | 2023-06-13 | Instasize, Inc. | Shareable settings for modifying images |
US11449664B1 (en) * | 2019-07-01 | 2022-09-20 | Instasize, Inc. | Template for creating content item |
US10977331B2 (en) * | 2019-07-24 | 2021-04-13 | International Business Machines Corporation | Closing a plurality of webpages in a browser |
KR102466718B1 (ko) * | 2020-10-13 | 2022-11-15 | 주식회사 한글과컴퓨터 | 프레젠테이션 문서를 구성하는 슬라이드에 녹화 영상의 삽입을 가능하게 하는 전자 단말 장치 및 그 동작 방법 |
US11900052B2 (en) * | 2020-11-11 | 2024-02-13 | Microsoft Technology Licensing, Llc | Automatic generation of transformations of formatted templates using deep learning modeling |
KR102427890B1 (ko) * | 2020-11-25 | 2022-08-01 | 네이버 주식회사 | 콘텐츠 배열을 위한 객체를 제공하는 방법 및 시스템 |
CN112669211B (zh) | 2020-12-29 | 2023-07-04 | 三星电子(中国)研发中心 | 一种图像重定位方法和装置 |
US11847402B2 (en) * | 2021-01-30 | 2023-12-19 | Walmart Apollo, Llc | Systems and methods for layout customization |
EP4145395A1 (en) * | 2021-09-07 | 2023-03-08 | grow.photos GmbH | Method for arranging digital images on a digital page |
US11687708B2 (en) * | 2021-09-27 | 2023-06-27 | Microsoft Technology Licensing, Llc | Generator for synthesizing templates |
US11853688B2 (en) * | 2022-03-04 | 2023-12-26 | Adobe Inc. | Automatic detection and removal of typesetting errors in electronic documents |
US20230334237A1 (en) * | 2022-04-14 | 2023-10-19 | Sigma Computing, Inc. | Workbook template sharing |
US11763075B1 (en) | 2022-05-27 | 2023-09-19 | Microsoft Technology Licensing, Llc | Method and system of discovering templates for documents |
US12056473B2 (en) * | 2022-08-01 | 2024-08-06 | Servicenow, Inc. | Low-code / no-code layer for interactive application development |
Family Cites Families (18)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5278901A (en) * | 1992-04-30 | 1994-01-11 | International Business Machines Corporation | Pattern-oriented intrusion-detection system and method |
US6029182A (en) * | 1996-10-04 | 2000-02-22 | Canon Information Systems, Inc. | System for generating a custom formatted hypertext document by using a personal profile to retrieve hierarchical documents |
US6023714A (en) * | 1997-04-24 | 2000-02-08 | Microsoft Corporation | Method and system for dynamically adapting the layout of a document to an output device |
US6684369B1 (en) * | 1997-06-19 | 2004-01-27 | International Business Machines, Corporation | Web site creator using templates |
US6826727B1 (en) * | 1999-11-24 | 2004-11-30 | Bitstream Inc. | Apparatus, methods, programming for automatically laying out documents |
US7284199B2 (en) * | 2000-03-29 | 2007-10-16 | Microsoft Corporation | Process of localizing objects in markup language documents |
JP4820526B2 (ja) * | 2000-08-17 | 2011-11-24 | 株式会社イーメディア | 出版物作成方法、その方法による電子化出版物及びその表示方法並びにネットワークシステム |
WO2002046916A2 (en) * | 2000-10-20 | 2002-06-13 | Polexis, Inc. | Extensible information system (xis) |
WO2002103554A1 (fr) * | 2001-06-14 | 2002-12-27 | Sharp Kabushiki Kaisha | Procede de traitement de donnees, programme de traitement de donnees et appareil de traitement de donnees |
US7392475B1 (en) * | 2003-05-23 | 2008-06-24 | Microsoft Corporation | Method and system for automatic insertion of context information into an application program module |
US7246311B2 (en) * | 2003-07-17 | 2007-07-17 | Microsoft Corporation | System and methods for facilitating adaptive grid-based document layout |
GB2404270A (en) * | 2003-07-24 | 2005-01-26 | Hewlett Packard Development Co | Document composition |
US7171618B2 (en) * | 2003-07-30 | 2007-01-30 | Xerox Corporation | Multi-versioned documents and method for creation and use thereof |
US20050060317A1 (en) * | 2003-09-12 | 2005-03-17 | Lott Christopher Martin | Method and system for the specification of interface definitions and business rules and automatic generation of message validation and transformation software |
US7424672B2 (en) * | 2003-10-03 | 2008-09-09 | Hewlett-Packard Development Company, L.P. | System and method of specifying image document layout definition |
US7554689B2 (en) * | 2003-10-15 | 2009-06-30 | Canon Kabushiki Kaisha | Document layout method |
EP1569087A3 (en) * | 2004-02-17 | 2007-04-25 | Canon Kabushiki Kaisha | Data processing apparatus, data processing method, program for implementing the method, and storage medium storing the program |
JP4047308B2 (ja) * | 2004-08-06 | 2008-02-13 | キヤノン株式会社 | レイアウト処理方法、情報処理装置及びコンピュータプログラム |
-
2006
- 2006-01-31 US US11/343,351 patent/US20070079236A1/en not_active Abandoned
- 2006-10-04 JP JP2008534701A patent/JP2009510650A/ja active Pending
- 2006-10-04 RU RU2008112881/08A patent/RU2419856C2/ru not_active IP Right Cessation
- 2006-10-04 AU AU2006299329A patent/AU2006299329B2/en not_active Ceased
- 2006-10-04 WO PCT/US2006/039100 patent/WO2007041703A1/en active Application Filing
- 2006-10-04 BR BRPI0616940-6A patent/BRPI0616940A2/pt not_active IP Right Cessation
- 2006-10-04 EP EP06816382A patent/EP1941392A1/en not_active Withdrawn
- 2006-10-04 KR KR1020087008111A patent/KR20080053930A/ko not_active Application Discontinuation
Also Published As
Publication number | Publication date |
---|---|
AU2006299329A1 (en) | 2007-04-12 |
EP1941392A1 (en) | 2008-07-09 |
KR20080053930A (ko) | 2008-06-16 |
JP2009510650A (ja) | 2009-03-12 |
WO2007041703A1 (en) | 2007-04-12 |
RU2008112881A (ru) | 2009-10-10 |
US20070079236A1 (en) | 2007-04-05 |
AU2006299329B2 (en) | 2011-04-07 |
RU2419856C2 (ru) | 2011-05-27 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
BRPI0616940A2 (pt) | projeto de multi-forma com composição harmÈnica para documentos dinamicamente agregados | |
US8091021B2 (en) | Facilitating adaptive grid-based document layout | |
JP4138011B2 (ja) | 媒体でデザインするためのコンテンツの自動的なレイアウトおよび書式設定 | |
US6928610B2 (en) | Automatic layout of content in a design for a medium | |
US8375293B2 (en) | Method and apparatus for defining documents | |
US5895477A (en) | Design engine for automatic layout of content | |
RU2358311C2 (ru) | Документ текстовой обработки, хранящийся в едином файле xml, которым могут манипулировать приложения, понимающие язык xml | |
US7673235B2 (en) | Method and apparatus for utilizing an object model to manage document parts for use in an electronic document | |
US6826727B1 (en) | Apparatus, methods, programming for automatically laying out documents | |
KR101150132B1 (ko) | 시작 템플릿과 목표 템플릿 사이의 콘텐츠 맵핑을 위한방법 및 시스템 | |
CA2517409C (en) | Method, system, and computer-readable medium for creating and laying out a graphic within an application program | |
KR101312732B1 (ko) | 직접 스타일쉬트 편집을 제공하기 위한 방법 및 시스템 | |
US20040194028A1 (en) | Method of formatting documents | |
Schrier et al. | Adaptive layout for dynamically aggregated documents | |
WO2012039723A1 (en) | Generating variable document templates | |
ZA200503517B (en) | Multi-layered forming fabric with a top layer of twinned wefts and an extra middle layer of wefts | |
van Ossenbruggen et al. | Towards a multimedia formatting vocabulary | |
WO2005098666A1 (en) | Processing data and documents that use a markup language | |
KR20010088529A (ko) | 전자문서 편집/변환처리장치와 그 방법 | |
Holman | Definitive XSL-FO | |
van Ossenbruggen et al. | INformation Systems Towards a multimedia formatting vocabulary | |
van Ossenbruggen et al. | REPORT INS-E0301 JUNE 30, 2003 | |
Di Iorio et al. | A total-fit page-breaking algorithm with user-defined adjustment strategies | |
Nuttayasakul | MathML without Plugins using VML |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
B08F | Application dismissed because of non-payment of annual fees [chapter 8.6 patent gazette] |
Free format text: REFERENTE AS 7A, 8A E 9A ANUIDADES. |
|
B08K | Patent lapsed as no evidence of payment of the annual fee has been furnished to inpi [chapter 8.11 patent gazette] |
Free format text: EM VIRTUDE DO ARQUIVAMENTO PUBLICADO NA RPI 2343 DE 01-12-2015 E CONSIDERANDO AUSENCIA DE MANIFESTACAO DENTRO DOS PRAZOS LEGAIS, INFORMO QUE CABE SER MANTIDO O ARQUIVAMENTO DO PEDIDO DE PATENTE, CONFORME O DISPOSTO NO ARTIGO 12, DA RESOLUCAO 113/2013. |