CS 6795 Semantic Web Techniques

Project 4: Mapping RuleML Transformation Rules to Standard ML


A transformation-rule extension is in the RuleML 0.81 prerelease: http://www.dfki.uni-kl.de/ruleml/dtd/0.81/. Contained here are instructive transformation-rule examples: http://www.dfki.de/ruleml/exa/0.81/ . Also consider the functional language (Standard) ML, e.g. by looking at "A Gentle Introduction to ML" (http://www.dcs.napier.ac.uk/course-notes/sml/manual.html ). Write an XSLT translator that maps arithmetic RuleML transformation rules over the integers to a (small) subset of Standard ML. The type declarations in Standard ML can therefore constantly use the 'int' type. This should handle arithmetic nestings such as RuleML's markup for +(*(X,X),*(2,X,Y),*(Y,Y)) and function definitions such as the markup for f(X,Y) = +(*(X,X),*(2,X,Y),*(Y,Y)). Since Standard ML uses an ASCII (not: XML) syntax, this XSLT translator maps from XML to ASCII. Test your translator with examples inspired by the above exa/0.81/, selecting those where integers can be used as the only argument types. Document your translator via the selected examples and discuss how one could proceed to further data types. 


Maintained by Bruce Spencer