RuleML / issues-ruleml

A repository solely for RuleML issues. No schemas or documents should be committed here.
3 stars 3 forks source link

Functional Languages Should Allow Expr Within repo #76

Closed HaroldBoley closed 6 years ago

HaroldBoley commented 6 years ago

Implement accepted option of - http://wiki.ruleml.org/index.php/Functional_Languages_Should_Allow_Expr_Within_repo#Option_1

HaroldBoley commented 6 years ago

New module called repoexpr_expansion_module.rnc copied from repo_expansion_module.rnc, containing the following code:

## terms allowed as positional rests include functional expressions. 
repoTerm.choice |= Expression-node.choice

Update documentation (e.g. dc metadata).

Modify the start pattern to:

start |= notAllowed
HaroldBoley commented 6 years ago

In relaxng directory, create two new drivers

which are copied from

in drivers directory. Add the following include statement for module repoexpr_expansion_module.rnc after the repo... include :

include "modules/repoexpr_expansion_module.rnc" inherit = ruleml {start |= notAllowed}
HaroldBoley commented 6 years ago

In relaxng directory, modify the four drivers named all_* by adding the include statement above after the include for "modules/repo_expansion_module.rnc".

HaroldBoley commented 6 years ago

Create new file /home/dylan/Github/deliberation-ruleml/exa/Hornlog/hornlog/hornlogrepoexpr.ruleml copied from /home/dylan/Github/deliberation-ruleml/exa/Hornlog/hornlog/hornlogrepoexpr_fail.ruleml . Change all of the names of the schemas in the new instance file to hornlogrepoexpr_relaxed.

Modify comment to:

<!-- a syntactic example rulebase for testing an example (<Expr> in <repo>) for the
   Hornlog RuleML sublanguage extended with functional expressions as positional rests-->

Similarly for instances in /home/dylan/Github/deliberation-ruleml/test/rnc-test-suites/functional-test-suite/hornlogrepoexpr_fail.ruleml and /home/dylan/Github/deliberation-ruleml/test/xsd-test-suites/functional-test-suite/hornlogrepoexpr_fail.ruleml .

HaroldBoley commented 6 years ago

Modify build script configuration files so that that the hornlogrepoexpr XSD is generated.

Add to /home/dylan/Github/deliberation-ruleml/bash/batch_config2rnc4xsd.sh : cp "${RNC_HOME}hornlogrepoexpr4xsd.rnc" "${RNC4XSD_HOME}hornlogrepoexpr.rnc"

Create new file hornlogrepoexpr4xsd.rnc in relaxng directory, copied from the driver generated in myng for hornlog. Add the include statement for the new module.

HaroldBoley commented 6 years ago

Add new drivers hornlogrepoexpr4xsd.rnc and hornlogrepoexpr_normal4xsd.rnc to relaxng directory:

HaroldBoley commented 6 years ago

Refinement C1: Modify bash/batch_xslt_test-normal.sh so that the repoexpr (ultimately, e.g. repoexpr_temp) instance files are excluded from testing for validity against nafhologeq_normal.xsd and nafhologeq_normal.rnc as follows:

if [[ ! "${file}" =~ fail ]] && [[ ! "${file}" =~ repoexpr ]] && [[ "${exitvalue}" -ne "0" ]]; then
      echo "XSD Validation Failed for Normal ${file}"
      exit 1
fi

if [[ ! "${file}" =~ fail ]] && [[ ! "${file}" =~ repoexpr ]] && [[ "${exitvalue}" -ne "0" ]]; then
      echo "RNC Validation Failed for Normal ${file}"
      exit 1
fi       
HaroldBoley commented 6 years ago

Refinement C2: Add the (above) include statement to supremum schemas nafhologeq*.rnc