You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@daffodil.apache.org by Regis Thomas <re...@nteligen.com> on 2020/11/10 10:53:38 UTC

Daffodil Flow Diagram

Hi All,

I am a new contributor to the Daffodil project.  I am looking through the Jira Issues for a project to get my feet wet, but it is difficult to find an interesting and easy issue without understanding how the components fit together and interact with each other.  Is there a flow diagram that explains how all the various components interact with each other?


Re: Daffodil Flow Diagram

Posted by "Beckerle, Mike" <mb...@owlcyberdefense.com>.
Such design doc as we have is rooted here:

https://cwiki.apache.org/confluence/display/DAFFODIL/Design+Notes

Daffodil starts with a DFDL Schema Compiler. That breaks the DFDL schema into a number of objects called DSOM objects. DSOM = DFDL Schema Object Model.

There is a wiki page describing DSOM here: https://cwiki.apache.org/confluence/display/DAFFODIL/DFDL+Schema+Object+Model+%28DSOM%29+with+UML

That's a starting point. The "tree" of DSOM objects is an abstract syntax tree for the DFDL schema, and attributes of it (lazy values) are computed by referencing other structures.

There's no overview or gradual introduction to the remainder of the system as yet. There's many design notes, but they tend to be quite focused on one or another intricate problem.

E.g.,the DSOM objects try to share substructure per: https://daffodil.apache.org/dev/design-notes/term-sharing-in-schema-compiler/ discussion.

Eventually these DSOM objects ask for a parser/unparser to be constructed. Those are generated from a Grammar/Rules system which is a "simple" rule-based optimizer.  The runtime data structures needed by those parser/unparser objects are also created.

Those parsers/unparsers are combinator-based and they are defined using a variety of helper classes. There are some design notes e.g., https://daffodil.apache.org/dev/design-notes/infoset-inputter-streaming-unparser/


That's what we have thusfar.

________________________________
From: Regis Thomas <re...@nteligen.com>
Sent: Tuesday, November 10, 2020 3:53 AM
To: dev@daffodil.apache.org <de...@daffodil.apache.org>
Subject: Daffodil Flow Diagram

Hi All,

I am a new contributor to the Daffodil project.  I am looking through the Jira Issues for a project to get my feet wet, but it is difficult to find an interesting and easy issue without understanding how the components fit together and interact with each other.  Is there a flow diagram that explains how all the various components interact with each other?