Key-Keyref Modules Migrated from Consumer to Deliberation

From RuleML Wiki
Jump to: navigation, search


--Athant (talk) 15:12, 1 August 2017 (ADT)

1 Issue Description

Currently there are two modules imported from Consumer RuleML:

include "http://consumer.ruleml.org/1.02/relaxng/modules/consumer_key_expansion_module.rnc" inherit = ruleml {start |= notAllowed}
include "http://consumer.ruleml.org/1.02/relaxng/modules/consumer_attribute_expansion_module.rnc" inherit = ruleml {start |= notAllowed}

It would be better to not have any such dependencies on Consumer RuleML, since Consumer RuleML is designed to be dependent on Deliberation RuleML.

2 Options

2.1 Option 0

Status quo - no change.

2.2 Option 1

Change the script schema_rnc.php (see also https://github.com/RuleML/deliberation-ruleml/blob/1.03/relaxng/schema_rnc.php) that builds the drivers so that the include statements are as follows:

include "modules/key_expansion_module.rnc" inherit = ruleml {start |= notAllowed}
include "modules/attribute_expansion_module.rnc" inherit = ruleml {start |= notAllowed}

In particular, change lines 843-4

      echo "#\n".'include "' . $consumerModulesLocation .
          'consumer_key_expansion_module.rnc"'."$end\n";

to

      echo "#\n".'include "' . 'modules/key_expansion_module.rnc"'."$end\n";

Similarly, change lines 849-50 Since the variable $consumerModulesLocation is no longer needed, delete line 354.

Finally, change the documentation from

  //Step 4C. Include Consumer modules  
  // Include key and keyref attributes

to

  //Step 4C. Include key and keyref attributes

Also, copy the modules from Consumer RuleML 1.02 into Deliberation RuleML 1.03 and make the appropriate change of module name. That is, remove "consumer_". Create the corresponding files in indep_valid directory.

Further, change all include statements, as above, in the static drivers, e.g. all_compact.rnc (see also https://github.com/RuleML/deliberation-ruleml/blob/1.03/relaxng/all_compact.rnc)

As a final check, perform a global search in the entire repository, after running build_myng, for occurrences of "consumer". If there are such occurrences, there may need to be further edits.

2.3 Option 2

Second possible change.

3 Discussion

3.1 Recommended Option

3.2 Accepted Option

Option 1.

3.3 Related Issues

Consumer RuleML 1.03 should import these modules from Deliberation RuleML 1.03.

Also, see Add_Keyref_Mechanism_to_Deliberation_RuleML

4 Resolution

4.1 Relax NG Modules

Glossary links in Modules that were copied from Consumer pointed to Consumer Glossary and were fixed, changed to Deliberation Glossary.

4.2 Relax NG Drivers

4.3 MYNG Engine

4.4 MYNG GUI

4.5 XSDs

4.6 Unit Tests

4.7 XSLTs

5 References