Team of 5 Members:
The following test cases demonstrate the normalizers capabilities for all
phases. The result of the test cases is the same:
- Nada Alsalmi
- Leah Bidlake
- Ao Chang
- Thea Gegenberg
- Emily Wilson
RuleML is a markup language for sharing rules in XML. It is serialized as an XML tree
whose elements alternate between representing classes or type tags (nodes), and representing
methods or role tags (edges). Such a document with all edges removed is an (extreme)
example of stripe-skipping. In the normalization of a RuleML document we transform
stripe-skipped serializations back into ones that are fully striped. We also assure that
subelements are in proper canonical order and that all attributes have explicit values.
Finally, we perform pretty-print formatting.
For phase 1 we check the syntax for missing stripes and add the missing
role tags. We use XSLT to check for the missing edge stripes and add them in
where necessary. We used various test cases to check that the normalizer added the necessary role tags.
Test cases used included relaxed, partially normalized and fully normalized.
For phase 2 reordered the elements so that their subelements are in canonical
order (e.g., slotted arguments after positional arguments). We made sure that the order of
the elements in the outputted RuleML document follows the same order outlined in the
normalizer schema. We also built canonically ordered content of each element.
For phase 3 we made all attributes that have default values explicit. We developed
general rules that can find an element and apply templates to it regardless of where it appears in
the source document. To make this process easier, we made the attributes with default values
explicit in a (Deliberation, non-SWSL) RuleML instance.
For phase 4 we ensured that the RuleML output is nicely formatted. This allows the output to be easily read.
For example, some tags are not to be put on a new line. Also, tabs are used properly to show the hierarchy of tags.
To duplicate the results from the test cases use the
Online XSLT 2.0 Service
and copy the links for the normalizer and the test case as the inputs.