Hi everyone,
It has been a while since the last update, but I have been very busy working
on the new parser (and playing amateur lumberjack and building a new
firewall).

The new parser will eventually replace the complex text analysis performed
by FlexWiki to transform a WikiText document to a viewable output, normally
HTML. The current code, while it performs admirably, is not conducive to
maintenance or improvements, due to complexity of the processing carried out
in more than a couple of thousand lines of code.

The new parser is based on work by Vladimir Morozov, using analysis entirely
based on Regular Expression rules. Samples of the power of such a parser can
be seen at Vladimir's web site [1]. The prototype implementation [2] for the
FlexWiki parser uses less than 200 lines of code to read and store the rules
for use by the parser. The code to drive the parser and create the
intermediate output is about 75 lines. This intermediate output is XML,
referred to as the Wiki Object Model (WOM) Output. Later work will add an
XSL Transformation to create the HTML output. Other output formats may
follow.

The prototype at [2] is run by selecting an 'Input document' from the grid
on the 'Input Doc View'. I have included a reasonable sampling of existing
wiki topics, but these are not yet editable in this version of the
prototype. After an input document has been selected the results of the
parser may be seen on the 'View WOM Document' tab and pressing the button
'ProcessText to WOM Document'. This will generate and display the XML data
for the WOM. The 'View Rules' tab allows the rule set to be displayed -
womContext.xml is the main rule set and womCell.xml, womIncludeTopic.xml,
womMultiline.xml and womText.xml are subordinate rule sets. The other xml
files are copies of data and can be ignored. The final tab that is active is
the 'View Class Diagram' tab, which shows the current view of development.

It is not possible to edit the rule set via the web app, but individuals who
want to help can co-ordinate efforts with me and I can set permissions for
editing or alternatively provide source code and sample data. This is just
at the advanced prototype stage, where consistent rules are generating
correct WOM, but there are a significant number of rules to still be defined
and validated. Also Unit Tests need to be created for the parsers and for
individual rules.


[1] http://notebar.com/CodeColor.html
[2] http://ods.dyndns.org/NewParser/default.aspx

John Davidson
-------------------------------------------------------------------------
This SF.net email is sponsored by the 2008 JavaOne(SM) Conference 
Don't miss this year's exciting event. There's still time to save $100. 
Use priority code J8TL2D2. 
http://ad.doubleclick.net/clk;198757673;13503038;p?http://java.sun.com/javaone
_______________________________________________
Flexwiki-users mailing list
Flexwiki-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/flexwiki-users

Reply via email to