|
|
|
|
|
|
|
|
|
|
|
|
|
This is the short form of an old summary based on design decisions of 2002. It predates the release of SiSU by a number of years, and should possibly be removed.
A rough chart of the SiSU program structure can be found here:
What follows is a brief description of the chart's components, based on the numbers and letters used in the chart.
A Input text ascii with minimalistic human markup requirements
B Machine intermediate processing output, used by all other modules - there for the time being is a selection: human readable; a Ruby marshal dump of the same, and; a YAML file 121 Once the intermediate stage is created, if no changes to input (i.e. A) are made, it is possible to start with B as input for program (i.e. to skip stage A and processing required to get to stage B). This might be of interest if document appearance is modified but not content. Abstract document structure is "created" here, with the pre-processing of the likes of tables, numbering (headings, paragraphs etc.) and endnotes, to ensure that all subsequent processing is based on the same integral document structures.
C Various final publication outputs that all share a common citation numbering system
html - there are possibilities for output based on tables or output based on css
pdf - landscape and portrait currently set to A4 paper size
XML with a flat structure,sax, and with a deeper (embedded) structure, dom
sql - data in sql database retaining document structure, this is in some ways similar to B output, as is likely to be further processed for presentation.
1 data feed controller for other program components
2 Creation of intermediate stage B, which contains information related to document structure used by all subsequent data output modules.
3 Parameter extraction. Program takes data related to the document being processed.
4 Relates primarily to appearance/ design, how the site or document should look:
4a Initialised variables used for "typesetting". eg. Margin widths etc. called by program. This can be done in 3 stages, there are i. the default program-wide settings, ii. possibility of setting alternative site-wide settings, iii. possibility of providing settings for an individual document
4b Template, includes formatting classes eg. for appearance of html (whether table based or css) or for pdf output. (For examples of templates at work, see examples provided earlier of html output in css and tables versions, and of pdf landscape and portrait outputs that result from templates that provide different the LaTeX output for the resulting pdfs.
5 Here we have the logic engines that call process B the intermediate machine generated data and call upon the relevant templates to produce the different presentations of the document.
5a html module - to construct html documents
5b LaTeX module - to construct LaTeX, which is then fed to pdflatex to produce pdf files
5c SQL module - to import data into PostgreSQL database retaining document structure detail and other detail common to the other output formats. This keeps all information regarding document structure in four relational database tables, one containing semantic and other headers, a second substantive texts, a third endnotes, a fourth pre-formatted texts. (the flexibility exists to carry this further)
SiSU is written in Ruby and assumes Linux OS (development has been on Debian/Gnu/Linux)
SiSU generates
html output
LaTeX output, then uses LaTeX (and /pdflatex/ LaTeX to pdf) for pdf output
lout output lout, then uses Lout to produce postscript (and postscript to pdf conversion), [not currently maintained]
sql output (database feed) eg PostgreSQL, making use of Ruby dbi or pgsql modules to be used by PostgerSQL, or sqlite, making use of Ruby dbi or sqlite modules to be used by sqlite
Not required but taken advantage of if available:
tidy (XML, xhtml well formed check)
trang (relaxng, rnc to dtd conversion)
there are other modules ... see this document.
121. YAML is currently used for some resource configuration, but not for intermediate storage. YAML ‹http://www.yaml.org/› stands for "yet another markup language". These two references may help to provide an idea of the joys of YAML ‹http://www.xml.com/lpt/a/2002/07/24/yaml.html› and ‹http://yaml4r.sf.net/cookbook/›
SiSU Book Samples and Markup Examples
Viral Spiral - How the Commoners Built a Digital Republic of Their Own
David Bollier
2009
The Wealth of Networks - How Social Production Transforms Markets and Freedom
Yochai Benkler
2006
Free Culture - How Big Media Uses Technology and the Law to Lock Down Culture and Control Creativity
Lawrence Lessig
2004
CONTENT - Selected Essays on Technology, Creativity, Copyright and the Future of the Future
Cory Doctorow
2008
Eric von Hippel
2005
Free As In Freedom - Richard Stallman's Crusade for Free Software
Sam Williams
2002
Two Bits - The Cultural Significance of Free Software
Christopher Kelty
2008
Free For All - How Linux and the Free Software Movement Undercut the High Tech Titans
Peter Wayner
2002
The Cathedral & the Bazaar - Musings on Linux and Open Source by an Accidental Revolutionary
Erik S. Raymond
1999
Cory Doctorow
2008
Down and Out in the Magic Kingdom
Cory Doctorow
2003
Cory Doctorow
2008
Free Software Foundation - FSF
GPL - GNU General Public License