Response to External Review of Consumer RuleML 1.02

From RuleML Wiki
Jump to: navigation, search

The comments below, in boxes, were received in regard to the Consumer RuleML 1.02 External Review. Immediately after the boxed comment, there is a bulleted RuleML response addressing it.

Four new issues were submitted to the RuleML Wiki Issue Tracker, as well as one new issue to the Consumer RuleML Github Issue Tracker, and another two to the [RuleML Github Issue Tracker], due to comments made during the External Review. All of these have been resolved:

Consequently, there is no net change to the number of open enhancement requests to be addressed in Consumer RuleML Version 1.03 as a result of the review. Note -- there are no open Errata of Consumer RuleML 1.02 at this time.

All comments received during the (now closed) External Review comment period for Consumer RuleML 1.02 have been addressed in the response below.


  1. The metadata in the Relax NG schemas refer to some Dublin Core properties that are actually in a different namespace, or have a different range than the value given.
  2. The content edge, used in the Interval, Spatial and Time elements as an alternative to the arg edge, should have a required @index attribute, just like arg edges, because it corresponds to a sequence of children, not a set of children.
  3. The bash scripts don't work when a directory or file has a space in the name. There needs to be quotes inserted to fix this.
  4. Since xml:base is no longer needed to resolve the relative IRI references of any attribute values, it's use can be restricted to the Data element.
  5. For a general instance of the XSD schemas, the application of the compactification C and then the normalization N transformation does not always result in the original instances. This suggest some additional restrictions to the instances, beyond what is specified by the schemas, so that this law is satisfied. Mathematically, this is accomplished by defining a projection operator P = NC. A valid instance must satisfy x = Px. Similarly, there is a different projection operator for compact instances, that only requires explicit @index attributes be sequential. Testing of this law should be incorporated into the bash scripts.
  6. For best reuse of code and flexibility, the XSLT formatters (normalizer and compactifier) can be split into modules, e.g. a replaceable pretty-printing module. The current pretty-printing is not ideal for some cases, in particular the comparison of instances necessary to verify the round-trip formatter laws of the previous item.
  7. When the Relax NG schema is converted to XSD using Trang, there are some "orphan" components that appear as global definitions but are never used. These should be removed, either by altering the Relax NG source schema or adding templates to the postprocessing rnc2xsd.xslt transformation, (or both).
  1. The metadata in the Relax NG schemas has been corrected.
  2. The Relax NG schema module for the content edge has been modified to incorporate a required @index attribute.
  3. The bash scripts have been modified as above, and tested with an installation that includes a space in the directory name of the Consumer RuleML repository.
  4. The RNC schemas have been modifed to restrict the xml:base attribute to the Data element having xsi:type of ruleml:anyURI, the complex type having content with datatype xs:anyURI as well as attributes.
  5. The XSLTs and the bash scripts have been modified to ensure that the round-trip law holds for generated instances, after application of the appropriate projection operator.
  6. The XSLT formatters have been modularized for greater reuse of code.
  7. The redefinitions used to create the compact serialization schemas have been extended to remove the unneeded definitions of skipped edges. Further, the post-processor has been modified to remove the remaining unneeded definitions in the generated XSDs.

The generated XSD schemas, content models, and schema docs have been updated to reflect the above changes.