====== Table of Contents ====== * [[:rgg:rgg-manual#java|XL and Java extension]] * [[:RGG:rgg-manual#rgg|GroIMP's Relational Growth Grammars]] * [[:RGG:rgg-manual#graph_manipulations|Graph Manipulations]] * [[:RGG:rgg-manual#additional_formats|Additional formats]] ====== XL and Java extension ====== The programming language XL is defined as an extension of the Java programming language. Thus the XL programming language benefits from the well-grounded concepts of structured, modular and object-oriented programming on which the Java programming is based. Being an extension not only at the level of the language specification, but also at the binary level, all existing Java libraries can be addressed immediately by XL programmes. This introduces at once an enormous power, since the Java programming language is known for being a language with a comprehensive set of high-quality, freely available run-time libraries, including sophisticated graphical user interface components, internet communications, 2D- and 3D-graphics, and XML support. Within a XL (or RGG) file, it is possible to write both XL code and Java code. XL sections are defined with ''['' '']'' brackets. Java sections are defined with ''{'' ''}'' brackets. See more: * [[http://www.grogra.de/|www.grogra.de]] * [[:GroIMP-Platform:XL-language|XL Overview]] * [[:GroIMP-Platform:XL-language|XL language speficication]] * [[:rgg:basic_operations|XL basic operations]] * [[:rgg:basic_objects|XL class and methods]] ====== GroIMP's Relational Growth Grammars ====== //Growth grammars// are a rule-based approach to the modelling of dynamic systems. In contrast to conventional imperative programming languages, rule-based approaches provide a natural and concise way of modelling: Most systems to be modeled behave according to a set of rules, and our perception works this way and not imperatively using a list of operations which have to be processed step by step. Relational growths grammars (RGG) are part of the current research at the [[http://www-gs.informatik.tu-cottbus.de/|Chair for Practical Computer Science / Graphics Systems]] at the Brandenburg University of Technology Cottbus (Germany) and its cooperation partners. They are defined as a unification of L-systems and graph grammars. This user manual explains how relational growths grammars are used within GroIMP, more information about relational growth grammars can be found at the web page [[http://www.grogra.de/|www.grogra.de]], more information about the programming language XL, which is used within GroIMP as an implementation of the calculus of relational growth grammars, can be found in the [[http://134.76.18.36/wordpress/the-xl-language-specification/|XL language speficication]]. See more: * [[:rgg:getting-started|Getting started with RGG]] ====== Graph Manipulations ====== To manipulate the Graph in RGG so called rewriting rules are used. These rules consist of three elements: * a pattern on the left side defined by an XL-query and/or XL-Operators * an graph-operator that describes how the right side is interpreted * and a right side with a new graph structure( described by [[:3d-guide:3d-manipulations#turtle_commands|turtle geometry]] and a graph-syntax) and/or instruction to change the nodes of the pattern on the left side. See more: * [[:groimp-platform:xl-language|More information on the graph operations]] * [[:groimp-platform:graph_operator|List of graph operations]] * [[:groimp-platform:graph_queries|Query syntax]] * [[:groimp-platform:xl-operators|List of XL operators]] Tutorials: * [[:Tutorials:common_rewriting_rules|basic rewriting rules]] * [[:Tutorials:common_graph_queries|basic XL queries]] * [[:Tutorials:common_graph_operator|basic graph operations]] ====== Additional formats ====== ==== Opening an L-Sytem in GROGRA-Syntax ==== GroIMP's RGG Plugin contains an import filter for non-sensitive GROGRA L-systems (''*.lsy'' -files). They can be opened and edited as for XL files. However, not all features of GROGRA are supported yet.