Las gramáticas de formas en computación son una clase específica de sistemas de producción que generan formas geométricas. Por lo general, las formas son bidimensionales o tridimensionales, por lo que las gramáticas de formas son una forma de estudiar lenguajes bidimensionales y tridimensionales. Las gramáticas de formas se introdujeron por primera vez en un artículo seminal de George Stiny y James Gips en 1971. [1] Los fundamentos matemáticos y algorítmicos de las gramáticas de formas (en particular, para elementos lineales en dos dimensiones) se desarrollaron en "Pictorial and Formal Aspects of Shapes and Shape Grammars" (Birkhäuser Basel, 1975) de George Stiny. Las aplicaciones de las gramáticas de formas se consideraron por primera vez en "Shape Grammars and their Uses" (Birkhäuser Basel, 1975) de James Gips. Estas publicaciones también contienen dos construcciones independientes, aunque equivalentes, que muestran que las gramáticas de formas pueden simular máquinas de Turing .
Una gramática de formas consta de reglas de formas y un motor de generación que selecciona y procesa reglas. Una regla de formas define cómo se puede transformar una forma existente (parte de una). Una regla de formas consta de dos partes separadas por una flecha que apunta de izquierda a derecha. La parte a la izquierda de la flecha se denomina lado izquierdo (LHS). Representa una condición en términos de una forma y un marcador. La parte a la derecha de la flecha se denomina lado derecho (RHS). Representa cómo se debe transformar la forma del LHS y dónde se coloca el marcador. El marcador ayuda a localizar y orientar la nueva forma.
Una gramática de forma consta como mínimo de tres reglas de forma: una regla de inicio , al menos una regla de transformación y una regla de terminación . La regla de inicio es necesaria para iniciar el proceso de generación de forma. La regla de terminación es necesaria para detener el proceso de generación de forma. La forma más sencilla de detener el proceso es mediante una regla de forma que elimine el marcador. Las gramáticas de forma difieren de las gramáticas de Chomsky en un aspecto importante: las reglas de producción se pueden aplicar en serie (como en las gramáticas de Chomsky) o en paralelo (no permitido en las gramáticas de Chomsky ), de forma similar a la forma en que se realizan las "producciones" en L-Systems .
Un sistema de gramática de formas tiene además un área de trabajo donde se muestra la geometría creada. El motor de generación comprueba la geometría existente, a menudo denominada Forma de trabajo actual (CWS), en busca de condiciones que coincidan con el LHS de las reglas de forma. Las reglas de forma con LHS coincidentes son elegibles para su uso. Si se aplica más de una regla, el motor de generación tiene que elegir qué regla aplicar. En el escenario alternativo, el motor elige primero una de las reglas de gramática y luego intenta encontrar todas las coincidencias del LHS de esta regla en la CWS. Si hay varias coincidencias, el motor puede (según su configuración/implementación)
Las gramáticas de formas son más útiles cuando se limitan a un problema de generación pequeño y bien definido, como el diseño de viviendas y el refinamiento de estructuras. Debido a que las reglas de forma generalmente se definen en formas pequeñas, una gramática de forma puede contener rápidamente una gran cantidad de reglas. La gramática de forma de las villas palladianas presentada por William Mitchell [2], por ejemplo, contiene 69 reglas, que se aplican a lo largo de ocho etapas.
Las gramáticas de forma paramétricas son una extensión de las gramáticas de forma. [3] La nueva forma en el lado derecho de la regla de forma se define mediante parámetros para que pueda tener en cuenta más del contexto de las formas ya existentes. Esto generalmente afecta las proporciones internas de la nueva forma, de modo que se pueda crear una mayor variedad de formas. De esta manera, se intenta hacer que las gramáticas de forma respondan a las condiciones estructurales, por ejemplo, el ancho de las vigas en las estructuras de los techos, que depende de la luz.
A pesar de su popularidad y aplicabilidad en los círculos académicos, las gramáticas de formas no han encontrado un uso generalizado en aplicaciones genéricas de diseño asistido por computadora .
Las gramáticas de formas se presentaron originalmente para la pintura y la escultura [1], pero se han estudiado en particular en arquitectura ( diseño arquitectónico asistido por computadora ), ya que proporcionan un formalismo para crear nuevos diseños. Otros dominios importantes en los que se han aplicado las gramáticas de formas son las artes decorativas, el diseño industrial y la ingeniería. [4]
Esta es una lista de prototipos de software que están disponibles en la web (varios de ellos son, estrictamente hablando, sistemas gramaticales bastante establecidos [5] [6] ):