Lightning Talk
Tree transformation with Python




Robert Niederreiter <office@squarewave.at>   Creative Commons Namensnen...
Nodes and trees
●   Node
          –   Base object for building trees
          –   Provides a dictionary like API and imp...
UML as node compliant tree




Robert Niederreiter <office@squarewave.at>   Creative Commons Namensnennung-
              ...
FS as node compliant tree




Robert Niederreiter <office@squarewave.at>   Creative Commons Namensnennung-
               ...
SQL as node compliant tree




Robert Niederreiter <office@squarewave.at>   Creative Commons Namensnennung-
              ...
IO System
●   AGX IO System
          –   Based on Nodes
          –   Follows the interfaces provided by Node
          –...
Tree transformation chain
●   Iterate over all nodes of source tree and look up
    handlers, which are responsible for cr...
Tree transformation chain




Robert Niederreiter <office@squarewave.at>   Creative Commons Namensnennung-
               ...
Thank you!




Robert Niederreiter <office@squarewave.at>     Creative Commons Namensnennung-
                            ...
Upcoming SlideShare
Loading in …5
×

AGX - Tree Transformations with Python - Lightning Talk at Plone Conference 2009

1,144 views

Published on

AGX is a framework to handle transformations between trees of zodict-nodes. Its also known as a code generator for python, which uses the tree transformations to generate code from uml.

Published in: Technology
0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total views
1,144
On SlideShare
0
From Embeds
0
Number of Embeds
3
Actions
Shares
0
Downloads
9
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

AGX - Tree Transformations with Python - Lightning Talk at Plone Conference 2009

  1. 1. Lightning Talk Tree transformation with Python Robert Niederreiter <office@squarewave.at> Creative Commons Namensnennung- Keine kommerzielle Nutzung- 3.0 Österreich Lizenz
  2. 2. Nodes and trees ● Node – Base object for building trees – Provides a dictionary like API and implements zope.interface.mapping.IFullMapping – Knows about it's position. It implements zope.location.interfaces.ILocation – Can be accessed flat. Nodes are accessible from each other via UID references ● Every data structure can be represented as tree, i.e. XML, UML, File System, SQL, LDAP Robert Niederreiter <office@squarewave.at> Creative Commons Namensnennung- Keine kommerzielle Nutzung- 3.0 Österreich Lizenz
  3. 3. UML as node compliant tree Robert Niederreiter <office@squarewave.at> Creative Commons Namensnennung- Keine kommerzielle Nutzung- 3.0 Österreich Lizenz
  4. 4. FS as node compliant tree Robert Niederreiter <office@squarewave.at> Creative Commons Namensnennung- Keine kommerzielle Nutzung- 3.0 Österreich Lizenz
  5. 5. SQL as node compliant tree Robert Niederreiter <office@squarewave.at> Creative Commons Namensnennung- Keine kommerzielle Nutzung- 3.0 Österreich Lizenz
  6. 6. IO System ● AGX IO System – Based on Nodes – Follows the interfaces provided by Node – Introduces ISource and ITarget, both derive from INode – ITarget promises to persist or dump the tree on __call__() in any way. Robert Niederreiter <office@squarewave.at> Creative Commons Namensnennung- Keine kommerzielle Nutzung- 3.0 Österreich Lizenz
  7. 7. Tree transformation chain ● Iterate over all nodes of source tree and look up handlers, which are responsible for creating target nodes inside the target tree based on the information from the source node. ● Transformation chain components located in agx.core ● Finally target tree is called. Robert Niederreiter <office@squarewave.at> Creative Commons Namensnennung- Keine kommerzielle Nutzung- 3.0 Österreich Lizenz
  8. 8. Tree transformation chain Robert Niederreiter <office@squarewave.at> Creative Commons Namensnennung- Keine kommerzielle Nutzung- 3.0 Österreich Lizenz
  9. 9. Thank you! Robert Niederreiter <office@squarewave.at> Creative Commons Namensnennung- Keine kommerzielle Nutzung- 3.0 Österreich Lizenz

×