[all pages:] introduction message/location/muli format dtd xantlr tdom ops paisley metajava umod option auxiliaries d2d downloads & licenses people bibliography APPENDICES:: white papers white papers 2 white papers 3 project struct proposal SOURCE:option.dtd SOURCE:dtd.umod DOC:deliverables.ddf DOC-DE:deliverables.ddf DOC:mtdocpage.ddf DOC-DE:mtdocpage.ddf DOC-EN:lablog.ddf SOURCE:basic.dd2 DOC:xslt.ddf SOURCE:xslt.dd2 DOC:meta.ddf [site map]
All pages: introduction message/location/muli format dtd xantlr tdom ops paisley metajava umod option auxiliaries d2d downloads & licenses people bibliography APPENDICES:: white papers white papers 2 white papers 3 project struct proposal SOURCE:option.dtd SOURCE:dtd.umod DOC:deliverables.ddf DOC-DE:deliverables.ddf DOC:mtdocpage.ddf DOC-DE:mtdocpage.ddf DOC-EN:lablog.ddf SOURCE:basic.dd2 DOC:xslt.ddf SOURCE:xslt.dd2 DOC:meta.ddf [site map]
white papers 2 | bandm meta_tools | project struct proposal |
Collected White Papers on Technical Details --3--
1
Applications and Self-Applications, a Survey
1.1
Table of Usage
1.2
Some paradigmatic data flows
The following table does NOT mention the usage of ops, format,
message, dtd, dtm and many other smaller packages,
because these are ubiquituously engaged.
The intention is to point out some paradigmatic applications
of the larger functional unities of
meta_tools
,
which can be helpful for the uses as examples, documentation and inspiration.
A tabelaric survey is followed by some more detailed graphs of data flow.
v uses -> | pai | umod | fo-fr | xantlr | tdom | metaJ | LLjava | muli | opt | tp/txsl | d2d | htmlMod |
dtd | X | X | ||||||||||
xantlr | -- | |||||||||||
metajava | (X1) | X | -- | |||||||||
tdom | -- | (X2) | ||||||||||
formatfrontends | -- | X | X | X | ||||||||
muli | X | X | (X3) | |||||||||
option | X | X | (X3) | |||||||||
umod | -- | (X1) | X | X | X | X | ||||||
tpath | X | -- | X | X | ||||||||
xslt | X | X | X/-- | |||||||||
d2d | X | (X1) | X | X | X | X | -- | |||||
umod | -- | (X1) | X | X | X | X | ||||||
dtm/htmlRenderer | (X1) | X | X | X | ||||||||
book2 | X | X | X | X | X | |||||||
DemoMetric | X | X | ||||||||||
MfMain | X | X | ||||||||||
gongMachine | X | X | ||||||||||
wiki | X | X | X | |||||||||
rezept | X | X | X | |||||||||
sig | ||||||||||||
tscore | ||||||||||||
MORETOCOME |
Remarks:
(X1) metajava/the users of metajava heavily use "format", but not the front-end compiler.
(X2) tdom uses "option" after a second bootstrap cycle.
(X3) users of "muli" and "option" frequently use "d2d", after completion of the bootstrap cycle.
A very versatile pattern is the following, which happens in the complete and in a shortened form:
] d2d ] tdom javac <inputFormat>.ddf -----]--> <iF>.dtd -------> <iF>.java -----> <iF.class> ] <input>.xml----\ d2d \ HANDCODED <input>.d2d ----------------->sax---------+--> objectModel ===============> output tdom \ / ----> aux Data -- HANDCODED |
The long form works as follows:
Nearly all sources are generated from an initial ".ddf" d2d-text-type
definition automatically.
The input data is encoded in d2d format and directly fed into the tdom model,
with a few lines of top-level code.
The "auxData" are "diagonal vertices" in the tdom graph, i.e.
additional directories, maps, indexes, etc., constructed by hand coding.
In most cases this pattern is very efficient: only few additional data must be
generated,
the generated visitor pattern can heavily be exploited, resulting in few lines
of user code.
eu,bandm.book2, de.na-berlin.meeli, and eu.bandm.cooking work this way.
An esp. interesting case is when an XHTML model is the generated output (eu.bandm.cooking). Here one tdom model is transformed into a different one.
The method which realizes the functionality of "data 2 tdom", callable by alle these applications, is static eu.bandm.tools.d2d2.base.Tasks.text2tdom(..) .
The most complex example is the BandM txsl xslt interpreter: its operation is nothing more than a transformation (expansion) of the original tdom model of the xslt code.
The shortened form starts with a DTD for generating tdom.
The input data normally is an XML file, in the standard encoding.
Nevertheless, this file can also be generated by d2d parsing, controlled by the dtd.
This pipelining can happen internally, controlled by the application, or externally
in the file system, controlled by "make" etc. This does not make any
difference in the logical of the data flow.
In this way tools.option and tools.muli are implemented. They are used as follows
v uses -> | option | muli |
DocumentedDistribution | handwritten XML | |
umod | handwritten XML | |
dtd renderer | handwritten XML | |
xslt | handwritten XML | |
d2d/base | handwritten XML | |
d2d/gui | d2d-encoded | |
book2 | handwritten XML | d2d-encoded |
music..DemoMetric | d2d-encoded | |
music..MfMain | handwritten XML | |
gongmachine | handwritten XML | |
na meeli | d2d-encoded | d2d-encoded |
white papers 2 | bandm meta_tools | project struct proposal |
made
2025-01-08_22h19 by
lepper on
happy-ubuntu
produced with
eu.bandm.metatools.d2d
and
XSLT
FYI view
page d2d source text