Skip to content

Clarification needed on the absence of a Viral Propagation rule if a Viral attribute is defined #731

Description

@javihern98

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.

  1. 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.

  2. 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.

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

Labels

No labels
No labels

Type

No type

Projects

No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions