Form Grammatik

Form-Grammatiken in der Berechnung sind eine bestimmte Klasse von Produktionssystemen, die geometrische Formen erzeugen.Typischerweise sind Formen 2- oder 3-dimensional, so dass Formgrammatiken eine Möglichkeit sind, 2- und 3-dimensionale Sprachen zu studieren. Die Grundlage für Formgrammatiken wurde 1971 in einem wegweisenden Artikel von George Stiny und James Gips definiert.

Definition
Eine Formgrammatik besteht aus Formregeln und einer Erzeugungsmaschine, die Regeln auswählt und verarbeitet. Eine Formregel definiert, wie eine vorhandene (Teil von a) Form transformiert werden kann. Eine Formregel besteht aus zwei Teilen, die durch einen Pfeil getrennt sind, der von links nach rechts zeigt. Der Teil links des Pfeils wird als linke Seite (LHS) bezeichnet. Es stellt einen Zustand in Form und Form dar. Der Teil rechts vom Pfeil wird als rechte Seite (RHS) bezeichnet. Es zeigt, wie die LHS-Form transformiert werden sollte und wo der Marker positioniert ist. Der Marker hilft dabei, die neue Form zu finden und auszurichten.

Eine Formgrammatik besteht minimal aus drei Formregeln: einer Startregel, mindestens einer Transformationsregel und einer Abbruchregel. Die Startregel ist erforderlich, um den Formerzeugungsprozess zu starten. Die Beendigungsregel ist erforderlich, damit der Formerzeugungsprozess gestoppt wird. Der einfachste Weg, den Prozess zu stoppen, ist eine Formregel, die den Marker entfernt. Form-Grammatiken unterscheiden sich von den Chomsky-Grammatiken vor allem dadurch, dass die Produktionsregeln seriell (wie bei Chomsky-Grammatiken) oder parallel (in Chomsky-Grammatiken nicht erlaubt) angewendet werden können, ähnlich wie „Produktionen“ in L-Systems durchgeführt werden.

Ein Formgrammatiksystem hat zusätzlich einen Arbeitsbereich, in dem die erstellte Geometrie angezeigt wird. Die Generierungsengine überprüft die vorhandene Geometrie, die häufig als aktuelle Arbeitsform (CWS) bezeichnet wird, für Bedingungen, die mit der LHS der Formeregeln übereinstimmen. Es können Shape-Regeln mit übereinstimmender LHS verwendet werden. Wenn mehr als eine Regel angewendet wird, muss die Generierungsengine auswählen, welche Regel angewendet werden soll. Im alternativen Szenario wählt die Engine zuerst eine der Grammatikregeln aus und versucht dann, alle Übereinstimmungen der LHS dieser Regel in der CWS zu finden. Wenn es mehrere Übereinstimmungen gibt, kann die Engine (abhängig von ihrer Konfiguration / Implementierung)

Eine Formgrammatik ist formal als 4-Tupel definiert  ,

  •  ist eine endliche Menge von Zeichen,
  •  ist eine endliche Menge von Zeichen, also  .
  •  ist eine endliche Menge von Produktionsregeln
  •  ist die Ausgangsfigur bestehend aus Elementen von  und  ,

Elemente der Menge  sind eine endliche Anordnung einer beliebigen Anzahl von Elementen  mit irgendeiner Skalierung oder Orientierung.

Elemente aus  das in der Regel  aus  oder in  Vorkommen werden Terminalfiguren genannt.

Elemente aus  sind sogenannte nichtterminale Figuren oder Marker. Elemente  aus  werden Formregeln oder Produktionsregeln genannt und sind in der Form  aufgeschrieben.

Die linke Seite  ist eine Figur, die aus einem Element besteht  kombiniert mit einem Element  ,

Die richtige Seite  ist eine Figur und besteht entweder aus dem gleichen Element  das in  tritt auf, das gleiche Element  im  , kombiniert mit einem Element  oder das gleiche Element  im  mit einem zusätzlichen Element kombiniert mit einem Element  ,

 ist die Ausgangsfigur, bestehend aus Elementen von  und  Es besteht normalerweise aus mindestens einem Element, das als  in der Regel  im  tritt ein.

Wenden Sie die Regel auf alle Übereinstimmungen parallel an,
wenden Sie die Regel auf alle Übereinstimmungen seriell an (was zu Inkonsistenzen führen könnte) oder
Wählen Sie eines der gefundenen Übereinstimmungen aus und wenden Sie die Regel nur auf diese Übereinstimmung an.
Form-Grammatiken sind am nützlichsten, wenn sie auf ein kleines, wohldefiniertes Erzeugungsproblem beschränkt sind, wie zum Beispiel Gehäuse-Layouts und Strukturverfeinerung. Da Formregeln normalerweise für kleine Formen definiert sind, kann eine Formgrammatik schnell viele Regeln enthalten. Die von William Mitchell vorgestellte Palladian-Villen-Form-Grammatik enthält zum Beispiel 69 Regeln, die in acht Phasen angewendet werden.

Parametrische Formgrammatiken sind eine Erweiterung von Formgrammatiken. Die neue Form in der RHS der Formregel wird durch Parameter definiert, so dass sie mehr von dem Kontext der bereits existierenden Formen berücksichtigen kann. Dies beeinflusst typischerweise die internen Proportionen der neuen Form, so dass eine größere Vielfalt an Formen erzeugt werden kann. Auf diese Weise wird versucht, Formgrammatiken auf strukturelle Bedingungen reagieren zu lassen, beispielsweise die Breite von Trägern in Dachstrukturen, die von der Spannweite abhängen.

Trotz ihrer Beliebtheit und Anwendbarkeit in akademischen Kreisen haben Formgrammatiken in generischen Computer-Aided-Design-Anwendungen keine weitverbreitete Verwendung gefunden.
Beschreibung

Eine Formgrammatik besteht aus Regeln und einer Erzeugungsmaschine, die die Regeln auswählt und verarbeitet oder berechnet.Eine Regel definiert, wie eine vorhandene Figur (oder ein Teil davon) in den geometrischen Raum transformiert werden kann. Die Definition einer Formgrammatik folgt der Standarddefinition einer Phrasenstrukturgrammatik von Chomsky, wobei Formen anstelle von Symbolen verwendet werden.

Eine Formgrammatik erzeugt eine Figur durch rekursives Anwenden der Formregeln, beginnend mit der Startfigur. Das Ergebnis der Anwendung der Regel auf eine vorhandene Figur ist immer eine neue Figur, die aus der bestehenden Figur besteht, wobei ein Auftreten der linken Seite der Regel in der neuen Figur durch die Figur auf der rechten Seite der Regel ersetzt wird.

Eine Formgrammatik besteht minimal aus drei Produktionsregeln (= Formregeln). Eine erste Regel, mindestens eine Transformationsregel und eine Beendigungsregel. Die Startregel ist erforderlich, um den Generierungsprozess zu starten, während die Planungsregel erforderlich ist, um die Generierung abzuschließen. Der einfachste Weg, den Prozess zu stoppen, ist das Entfernen des Markers (= nonterminals). Im Gegensatz zu Chomsky-Grammatiken können Produktionsregeln in Shape-Grammatiken nicht nur seriell, sondern auch parallel, ähnlich der Reihenfolge von L-Systemen, angewendet werden.

Ein Formgrammatiksystem hat normalerweise einen spezifischen Arbeitsbereich, in dem die generierten Formen angezeigt werden. Die Generierungsengine überprüft die vorhandene Zahl für Übereinstimmungen mit den Bedingungen auf der linken Seite der Formregeln. Wenn mehr als eine geeignete Regel gefunden wird, entscheidet die Engine, welche angewendet werden soll.Eine alternative Methode besteht darin, zuerst eine Regel auszuwählen und dann alle Übereinstimmungen der linken Seite mit der aktuellen Figur zu suchen. Je nach Implementierung gibt es mehrere Übereinstimmungen

  • die Regel gilt für alle Übereinstimmungen parallel,
  • die Regel, die auf alle Übereinstimmungen seriell angewendet wird (könnte zu Inkonsistenzen führen) oder
  • eines der ausgewählten Übereinstimmungen und die Regel nur für diesen Bereich.

Parametrische Formgrammatiken sind eine Erweiterung von Formgrammatiken. Anstelle der Produktionsregeln wird das Shape-Regelschema (  ), die aus parametrischen Figuren bestehen. Durch Einfügen konkreter Werte in die Variablen von  und  es werden neue Formregeln definiert, die dann in gewohnter Weise neue Figuren erstellen. Durch diese Verallgemeinerung kann eine größere Variation von Figuren erzeugt werden.

Anwendungen
Form-Grammatiken wurden ursprünglich für Gemälde und Skulpturen präsentiert, finden aber seither hauptsächlich Anwendung in der Architektur (computergestütztes Architekturdesign). Form-Grammatiken eignen sich besonders für kleine, genau definierte Probleme, wie zum Beispiel Struktur und Layout von Innenräumen oder Fassaden von Gebäuden. Form-Grammatiken bestehen oft aus einer großen Anzahl von Regeln. Zum Beispiel besteht die Formgrammatik, die William Mitchell für die Erstellung einer Villa im Stil des italienischen Architekten Andrea Palladio präsentiert, aus 69 Regeln, die in acht Umsetzungsschritten angewendet werden.

Ähnlich wie in der Architektur haben Form-Grammatiken in der Computergrafik in den letzten Jahrzehnten zunehmend an Bedeutung gewonnen. Form-Grammatiken werden hauptsächlich für die prozedurale Modellierung von Gebäuden oder Städten (zB für Filme oder Videospiele) verwendet. Form Grammatiken bilden die Grundlage für zahlreiche entwickelte Systeme, die Produktionsregeln verwenden, um verschiedene 3D-Modelle zu generieren. Sowohl realistisch aussehende Straßenpläne als auch Fassaden oder Innenräume von Gebäuden können mit Shape Grammars prozedural erstellt werden.

Andere Bereiche, in denen Shape-Grammatiken angewendet wurden, sind Industriedesign und -technik.

Software-Prototypen
Dies ist eine Liste von Software-Prototypen, die im Internet verfügbar sind (einige von ihnen sind streng genommen eher Grammatik-Systeme):

Grammatik-Umgebung
TRAUBE
SD2
Form Grammatikinterpreter
Shaper2D
Spachtel
SubShapeDetector
Yingzao fashi Gebäudegenerator