-
Notifications
You must be signed in to change notification settings - Fork 4
Description
I have created a new redefining module for And and Or that can serve as a template.
There are two And types in Deliberation RuleML - And-inner and And-query
The difference in Deliberation is that And-query allows closure attributes while And-inner does not.
The type definition of the And elements has two attribute lists, one for the attributes with default values And-Query-datt.choice and the other for the attributes with no default values reAnd-Query.attlist.
In the XSD of Reaction RuleML, And is given the operator-interface attribute list, which contains type?, style?, scope? and closure? in the consumer dialect, and also arity?, card?, weight?, mode? and per-rel?.
In addition the XSD includes the direction attribute optionally in this group.
To redefine the RNC type for And, we would need to make the pattern And-Query-datt.choice empty
And-Query-datt.choice |= empty
and give reAnd-Query.attlist the operator-interface pattern
reAnd-Query.attlist &= operator-interface.attlist?
In the RNC, the common attributes are included in the operator-interface.attlist, so there is no need to explicitly add these.
When Deliberation RuleML expressivity is FOL, then the And element is allowed to have an optional mapClosure attribute as well. This is not accommodated in Reaction RuleML, but there is no loss of expressivity, as the quantifications can always be expressed explicitly.