Checked for duplicates
Yes - I've already checked
π§βπ¬ User Persona(s)
Data User, Data Engineer, Node Operator
πͺ Motivation
...so that I can discover provenance relationships between products that have different LIDs (not just different versions of the same LID), enabling more comprehensive tracking of product supersession across the registry.
π Additional Details
Current Behavior
The provenance sweeper currently uses version_id to determine if a product has been superseded. This only tracks supersession within the same LID (different versions of the same product).
New Requirement
With the new PROV LDD, products can now explicitly declare that they supersede other products with different LIDs. The provenance sweeper needs to be updated to also process this PROV LDD information.
PROV LDD Structure
The new XML label structure includes:
<prov:SupersededLID>
<prov:title>urn:nasa:pds:...</prov:title>
<prov:local_id>Superseded LIDs</prov:local_id>
<prov:description>Product LID change due to...</prov:description>
<prov:Entity>
<prov:title>urn:nasa:pds:...</prov:title>
<prov:local_id>urn:nasa:pds:...</prov:local_id>
<prov:description>New LID supersedes old LID.</prov:description>
<prov:Attributes>
<prov:attribute>Supersedes</prov:attribute>
<prov:value>urn:nasa:pds:...[superseded product LID]</prov:value>
</prov:Attributes>
<prov:Attributes>
<prov:attribute>Reason</prov:attribute>
<prov:value>Duplication</prov:value>
</prov:Attributes>
</prov:Entity>
</prov:SupersededLID>
Implementation Approach
In the registry, the sweeper should:
- Query for documents where
prov:Attributes.prov:attribute = "Supersedes"
- Extract the associated
prov:Attributes.prov:value to get the LID of the superseded product
- Update the superseded product's
ops:Provenance/ops:superseded_by field to point to the superseding product
This should work alongside the existing version-based supersession logic, not replace it.
For Internal Dev Team To Complete
Acceptance Criteria
Given a product with PROV LDD metadata declaring it supersedes another product (via prov:Attributes with attribute=Supersedes)
When I perform a provenance sweeper run
Then I expect the superseded product to have its ops:Provenance/ops:superseded_by field populated with the LIDVID of the superseding product
βοΈ Engineering Details
To be filled by engineering team
π I&T
To be filled by engineering team
Checked for duplicates
Yes - I've already checked
π§βπ¬ User Persona(s)
Data User, Data Engineer, Node Operator
πͺ Motivation
...so that I can discover provenance relationships between products that have different LIDs (not just different versions of the same LID), enabling more comprehensive tracking of product supersession across the registry.
π Additional Details
Current Behavior
The provenance sweeper currently uses
version_idto determine if a product has been superseded. This only tracks supersession within the same LID (different versions of the same product).New Requirement
With the new PROV LDD, products can now explicitly declare that they supersede other products with different LIDs. The provenance sweeper needs to be updated to also process this PROV LDD information.
PROV LDD Structure
The new XML label structure includes:
Implementation Approach
In the registry, the sweeper should:
prov:Attributes.prov:attribute = "Supersedes"prov:Attributes.prov:valueto get the LID of the superseded productops:Provenance/ops:superseded_byfield to point to the superseding productThis should work alongside the existing version-based supersession logic, not replace it.
For Internal Dev Team To Complete
Acceptance Criteria
Given a product with PROV LDD metadata declaring it supersedes another product (via
prov:Attributeswithattribute=Supersedes)When I perform a provenance sweeper run
Then I expect the superseded product to have its
ops:Provenance/ops:superseded_byfield populated with the LIDVID of the superseding productβοΈ Engineering Details
To be filled by engineering team
π I&T
To be filled by engineering team