Oriented-Only Equations

From RuleML Wiki
Jump to: navigation, search
--WikiSysop (talk) 15:49, 18 July 2014 (ADT)

1 Issue Description

Sublanguages that enforce the attribute @oriented="yes" on Equal have fast implementations of inference, relative to languages with unoriented equality. It is possible to construct a schema for such a sublanguage from a certain combination of the Relax NG modules for equations in the case that attributes with default values are required to be present, because we can leave out the option to put "no" in the required @oriented attribute, so the only allowed valued is "yes".

However, the PHP script that interprets the MYNG code does not allow this option. The relevant MYNG codes are t10 (unoriented equations) and t30 (oriented and unoriented equations). The natural interpretation for t20 is (only) oriented equations. Instead, the MYNG REST interface interprets this as including the module that defines the oriented attribute, but not the Equal element. Since the oriented attribute is no use without the Equal element, this is a wasted option, with dormant code for the oriented attribute.

Note: there is some duplication of Sublanguage_with_oriented_equality_only, which also addresses the broader topic of (optionally) changing the default value of @oriented to "yes".

2 Options

2.1 Option 1

Change the interpretation of t20 to be oriented equations only. This only works in the case that the attributes with default values are required, because otherwise the @oriented attribute is optional, and the absence of the oriented attribute is interpreted as an unoriented equation.

2.2 Option 2

3 Discussion

4 Resolution

This enhancement has been implemented in Version 1.01.

4.1 Relax NG Modules

No change.

4.2 Relax NG Drivers

No change.

4.3 MYNG Engine

Modify the PHP script to handle this case. Done in https://github.com/RuleML/deliberation-ruleml/commit/093864ada52ae1e85e7b4fd71c540d2b027eb1e9


No change.

4.5 XSDs

No change, since there is no new anchor schema.

4.6 Unit Tests

A fail instance is needed. (Done in the same commit above.)

4.7 XSLTs

No change/

5 References