Issue Description
The Reference Manual section Attribute propagation
(reference_manual/typical_behaviour.rst, lines 897–940) and the
define viral propagation construct
(reference_manual/vtl_dl_rulesets/viral_attributes.rst) describe how viral
Attributes are propagated and how the propagation algorithm is registered.
Neither states what happens when an Attribute is declared viral but
no viral propagation rule is defined for it — neither on its Represented
Variable nor on the Value Domain it uses.
Because virality (the Boolean flag) and the propagation algorithm are specified
separately, a "viral Attribute with no propagation rule" is currently a
syntactically valid but semantically under-defined state:
viral_attributes.rst says the construct "registers the algorithm that must
be applied whenever an operator propagates the value of a viral Attribute",
and that when two or more values are combined the algorithm is applied pair by
pair — but it does not say what applies when there is no such algorithm.
- The only NULL fallback documented (
viral_attributes.rst, lines 49–52 and
155–158) is the missing-else case inside an already-defined enumerated
rule, not the "no rule at all" case.
typical_behaviour.rst describes the default propagation behaviour assuming a
rule/algorithm exists.
As a result the outcome is implementation-defined (propagate as-is? set to
NULL? reject?), which harms interoperability.
Proposed Solution
Specify that a viral Attribute without a viral propagation rule is a semantic
error, validated statically, and document it in the typical-behaviour section.
-
Reference Manual — typical_behaviour.rst, section "Attribute propagation"
(new paragraph after the one ending at line 929):
Once an Attribute is declared as viral, a viral propagation rule (see
:doc:/reference_manual/vtl_dl_rulesets/viral_attributes) must be defined
for it, either on its Represented Variable or on the Value Domain it uses.
It is a semantic error for an Attribute to be viral when no viral
propagation rule is defined for it.
-
Reference Manual — viral_attributes.rst, "Semantics" (consistency; next
to the existing semantic-error statements at lines 17–19):
It is a semantic error for an Attribute to be declared viral without a viral
propagation rule defined for it (on its Represented Variable or on the Value
Domain it uses).
This keeps the normative construct page and the typical-behaviour page aligned.
Issue Description
The Reference Manual section Attribute propagation
(
reference_manual/typical_behaviour.rst, lines 897–940) and thedefine viral propagation construct
(
reference_manual/vtl_dl_rulesets/viral_attributes.rst) describe how viralAttributes are propagated and how the propagation algorithm is registered.
Neither states what happens when an Attribute is declared viral but
no viral propagation rule is defined for it — neither on its Represented
Variable nor on the Value Domain it uses.
Because virality (the Boolean flag) and the propagation algorithm are specified
separately, a "viral Attribute with no propagation rule" is currently a
syntactically valid but semantically under-defined state:
viral_attributes.rstsays the construct "registers the algorithm that mustbe applied whenever an operator propagates the value of a viral Attribute",
and that when two or more values are combined the algorithm is applied pair by
pair — but it does not say what applies when there is no such algorithm.
viral_attributes.rst, lines 49–52 and155–158) is the missing-else case inside an already-defined enumerated
rule, not the "no rule at all" case.
typical_behaviour.rstdescribes the default propagation behaviour assuming arule/algorithm exists.
As a result the outcome is implementation-defined (propagate as-is? set to
NULL? reject?), which harms interoperability.
Proposed Solution
Specify that a viral Attribute without a viral propagation rule is a semantic
error, validated statically, and document it in the typical-behaviour section.
Reference Manual —
typical_behaviour.rst, section "Attribute propagation"(new paragraph after the one ending at line 929):
Reference Manual —
viral_attributes.rst, "Semantics" (consistency; nextto the existing semantic-error statements at lines 17–19):
This keeps the normative construct page and the typical-behaviour page aligned.