Gramática de formas

As gramáticas de forma na computação são uma classe específica de sistemas de produção que geram formas geométricas.Normalmente, as formas são bidimensionais ou tridimensionais, portanto, as gramáticas de forma são uma forma de estudar as linguagens bidimensionais e tridimensionais. A base das gramáticas da forma foi definida em um artigo seminal de George Stiny e James Gips em 1971.

Definição
Uma gramática de formas consiste em regras de forma e um mecanismo de geração que seleciona e processa regras. Uma regra de forma define como uma forma existente (parte de um) pode ser transformada. Uma regra de forma consiste em duas partes separadas por uma seta apontando da esquerda para a direita. A parte esquerda da seta é denominada Lado Esquerdo (LHS). Ele descreve uma condição em termos de uma forma e um marcador. A parte direita da seta é denominada Lado Direito (RHS). Ele descreve como a forma do LHS deve ser transformada e onde o marcador está posicionado. O marcador ajuda a localizar e orientar a nova forma.

Uma gramática de formas consiste, minimamente, em três regras de forma: uma regra de início, pelo menos uma regra de transformação e uma regra de terminação. A regra inicial é necessária para iniciar o processo de geração de formas. A regra de terminação é necessária para que o processo de geração de formas pare. A maneira mais simples de parar o processo é por meio de uma regra de forma que remova o marcador. As gramáticas de formas diferem das gramáticas de Chomsky como principais: as regras de produção podem ser aplicadas em série (como nas gramáticas de Chomsky) ou em paralelo (não permitidas nas gramáticas de Chomsky), da mesma forma que as “produções” são feitas em L-Systems.

Um sistema de gramática de formas possui adicionalmente uma área de trabalho onde a geometria criada é exibida. O mecanismo de geração verifica a geometria existente, muitas vezes referida como Forma de trabalho atual (CWS), para condições que correspondem ao LHS das regras de forma. Regras de forma com LHS correspondentes são elegíveis para uso. Se mais de uma regra se aplicar, o mecanismo de geração terá que escolher qual regra aplicar. No cenário alternativo, o mecanismo primeiro escolhe uma das regras gramaticais e, em seguida, tenta localizar todas as correspondências do LHS dessa regra no CWS. Se houver várias correspondências, o mecanismo pode (dependendo de sua configuração / implementação)

Uma gramática de forma é formalmente definida como uma tupla  ,

  •  é um conjunto finito de caracteres,
  •  é um conjunto finito de caracteres, então  .
  •  é um conjunto finito de regras de produção
  •  é a figura inicial que consiste em elementos de  e  ,

Elementos da multidão  são um arranjo finito de qualquer número de elementos  com qualquer escala ou orientação.

Elementos desativados  que em uma regra  Fora  ou em  as ocorrências são chamadas de números terminais.

Elementos desativados  são as chamadas figuras não-terminais ou marcadores. elementos  Fora  são chamados regras de forma ou regras de produção e estão na forma  escrito.

O lado esquerdo  é uma figura que consiste em um elemento  combinado com um dos elementos  ,

O lado direito  é uma figura e consiste no mesmo elemento  Está em  ocorre, o mesmo elemento  dentro combinado com um elemento  ou o mesmo elemento  dentro  , com um elemento adicional  combinado com um elemento  ,

 é a figura inicial, constituída por elementos de  e  Geralmente consiste em pelo menos um elemento que  em uma regra  dentro  ocorre.

Aplique a regra a todos os jogos em paralelo,
aplicar a regra a todas as correspondências em série (o que pode levar a inconsistências) ou
escolha uma das correspondências detectadas e aplique a regra apenas a essa correspondência.
As gramáticas de forma são mais úteis quando confinadas a um problema de geração pequeno e bem definido, como layouts de alojamento e refinamento de estrutura. Como as regras de forma geralmente são definidas em formas pequenas, uma gramática de formas pode conter rapidamente muitas regras. A forma geométrica das vilas palladianas apresentada por William Mitchell, por exemplo, contém 69 regras, que são aplicadas ao longo de oito etapas.

Gramáticas de forma paramétrica são uma extensão de gramáticas de forma. A nova forma no RHS da regra de forma é definida por parâmetros para que possa levar em consideração mais o contexto das formas já existentes. Isso normalmente afeta proporções internas da nova forma para que uma maior variedade de formulários possa ser criada. Deste modo, são feitas tentativas para fazer com que as gramáticas de forma respondam às condições estruturais, por exemplo, a largura das vigas nas estruturas do telhado que depende do vão.

Apesar de sua popularidade e aplicabilidade nos círculos acadêmicos, as gramáticas de forma não encontraram amplo uso em aplicações genéricas de projeto assistido por computador.
Descrição

Uma gramática de formas consiste em regras e um mecanismo de geração que seleciona e processa ou calcula as regras. Uma regra define como uma figura existente (ou parte dela) pode ser transformada no espaço geométrico. A definição de uma gramática de formas segue a definição padrão de gramática de estrutura de frases de Chomsky, usando formas em vez de símbolos.

Uma gramática de formas gera uma figura recursivamente aplicando as regras de forma, começando com a figura inicial. O resultado da aplicação da regra a uma figura existente é sempre uma nova figura que consiste na figura existente, com uma ocorrência do lado esquerdo da regra na nova figura sendo substituída pela figura à direita da regra.

Uma gramática de formas é minimamente composta de três regras de produção (= regras de forma). Uma regra inicial, pelo menos, uma regra de transformação e uma regra de terminação. A regra inicial é necessária para iniciar o processo de geração, enquanto a regra de planejamento é necessária para concluir a geração. A maneira mais fácil de parar o processo é remover o marcador (= não-terminais). Em contraste com as gramáticas de Chomsky, as regras de produção em Gramáticas de Forma podem ser aplicadas não apenas em série, mas também em paralelo, semelhante à sequência de sistemas-L.

Um sistema de gramática de formas geralmente tem um espaço de trabalho específico no qual as formas geradas são exibidas. O mecanismo de geração verifica as correspondências do número existente para as condições no lado esquerdo das regras de forma. Se mais de uma regra adequada for encontrada, o mecanismo decide qual delas aplicar. Um método alternativo é primeiro selecionar uma regra e, em seguida, pesquisar todas as correspondências do lado esquerdo com a figura atual. Existem várias correspondências, dependendo da implementação

  • a regra aplicada a todos os jogos em paralelo,
  • a regra aplicada a todas as correspondências em série (pode levar a inconsistências) ou
  • uma das correspondências selecionadas e a regra aplicada somente a essa área.

Gramáticas de forma paramétrica são uma extensão de gramáticas de forma. Em vez das regras de produção, o esquema de regras Shape (  ), que consistem em figuras paramétricas. Ao inserir valores concretos nas variáveis ​​de  e  novas regras de forma são definidas, que são então usadas da maneira usual para criar novas figuras. Através desta generalização, uma maior variação de figuras pode ser gerada.

Aplicações
Gramáticas forma foram originalmente apresentadas para pinturas e esculturas, mas desde então têm encontrado principalmente aplicação na arquitetura (projeto arquitetônico assistido por computador). As gramáticas de forma são particularmente adequadas para problemas pequenos e bem definidos, como estrutura e layout de interiores ou fachadas de edifícios. As gramáticas de forma geralmente consistem em um grande número de regras. Por exemplo, a gramática de formas apresentada por William Mitchell para a criação de uma villa no estilo do arquiteto italiano Andrea Palladio consiste em 69 regras, que são aplicadas em oito etapas de implementação.

Semelhante à arquitetura, as gramáticas de forma tornaram-se cada vez mais importantes na computação gráfica nas últimas décadas. As gramáticas de forma são usadas principalmente para a modelagem procedural de edifícios ou cidades (por exemplo, para filmes ou videogames). Gramáticas de forma formam a base para vários sistemas desenvolvidos que usam regras de produção para gerar uma variedade de modelos 3D diferentes. Ambas as plantas de aparência realista, bem como fachadas ou interiores de edifícios podem ser criados processualmente usando gramáticas de forma.

Outras áreas em que as gramáticas Shape foram aplicadas incluem design industrial e engenharia.

Protótipos de software
Esta é uma lista de protótipos de software que estão disponíveis na web (vários deles são estritamente falando, em vez de definir sistemas gramaticais):

Ambiente gramatical
UVA
SD2
Intérprete de Gramática de Forma
Shaper2D
spapper
SubShapeDetector
Yingzao fashi gerador de construção