Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

As a user, I want to search for all versions of a product where the LID changed during the product history #427

Open
jordanpadams opened this issue Dec 23, 2021 · 9 comments
Assignees
Labels

Comments

@jordanpadams
Copy link
Member

jordanpadams commented Dec 23, 2021

💪 Motivation

...so that I can browse through the provenance of a product

📖 Additional Details

Per the parent epic, and the design we need to update the API to implement these changes so we can sufficiently understand the version history.

For example, Product A changes its logical identifier from version "1" of the product (lid_x) to version "2" (lid_y), we want to know that these are actually revisions of the same product.

NOTE: The versions may not be in appropriate ascending order, e.g. you could have lid_x::1.0 and lid_y::1.0, but really lid_x::1 == Product A v1 and lid_y::1.0 == Product A v2

⚖️ Acceptance Criteria

Given the context products urn:nasa:pds:context:instrument:crs.vg1::1.0 and urn:nasa:pds:context:instrument:vg1.crs::1.0 ingested into the registry
When I perform a query of the API for products/urn:nasa:pds:context:instrument:crs.vg1/all
Then I expect to see 2 records returned for urn:nasa:pds:context:instrument:crs.vg1::1.0 and urn:nasa:pds:context:instrument:vg1.crs::1.0

Given the context products urn:nasa:pds:context:instrument:crs.vg1::1.0 and urn:nasa:pds:context:instrument:vg1.crs::1.0 ingested into the registry
When I perform a query of the API for products/urn:nasa:pds:context:instrument:vg1.crs/all
Then I expect to see 2 records returned for urn:nasa:pds:context:instrument:crs.vg1::1.0 and urn:nasa:pds:context:instrument:vg1.crs::1.0

Here are some more specific examples, let's say we have:
urn:nasa:pds:context:instrument:crs.vg1::1.0 (actually version 1 of this product)
urn:nasa:pds:context:instrument:vg1.crs::1.0 (actually version 2 of this product)
urn:nasa:pds:context:instrument:vg1.crs::2.0 (actually version 3 of this product)

  • As a user, when I search for /products/urn:nasa:pds:context:instrument:vg1.crs I will get urn:nasa:pds:context:instrument:vg1.crs::2.0 (API defaults to latest version)
  • As a user, when I search for /products/urn:nasa:pds:context:instrument:crs.vg1 I will get urn:nasa:pds:context:instrument:vg1.crs::2.0 (API defaults to latest version)
  • As a user, when I search /products/urn:nasa:pds:context:instrument:crs.vg1/latest, I want to get back urn:nasa:pds:context:instrument:vg1.crs::2.0
  • As a user, when I search /products/urn:nasa:pds:context:instrument:crs.vg1/all, I want to get back all 3 versions (ordered by creation date time).
  • As a user, when I search /products/urn:nasa:pds:context:instrument:crs.vg1::1.0, I want to get back 1 product urn:nasa:pds:context:instrument:crs.vg1::1.0

⚙️ Engineering Details

@jordanpadams
Copy link
Member Author

merged per NASA-PDS/registry-mgr#46

@jordanpadams
Copy link
Member Author

this was not actually closed out. this is only supported via registry, not the API

@tloubrieu-jpl
Copy link
Member

Discussed at the management council:

  • Ann: should be handled as superseded relationship
  • Mark Bentley: we have cases like this where LIDs include times (bad idea, I know) and SPICE kernel updates changed the times. So how do we tell the registry that two products are connected?
  • alias could be used or reference_list

@matthewtiscareno
Copy link

It is very distressing to learn that examples of this issue exist. The first job of a LID is never to change. We have some formation rules for LIDs, but we need to make it more clear for future cases that those formation rules do not take precedence over the more important rule that a LID should never change.

How many superseded LIDs are there? The issue report mentions only one. How easy would it be to obtain a complete list?

Furthermore, how easy would it be to obtain a list of the data products that use superseded LIDs?

Most importantly, we need an SCR to make it more clear for future cases that any LID formation rules do not take precedence over the more important rule that a LID should never change. This may involve a change to the Standards Reference and possibly other things as well. Comments regarding this?

@rchenatjpl
Copy link

rchenatjpl commented Nov 29, 2022

We've only changed (deprecated then replaced) LIDs that 1) have incorrect format based on the current formation rules, and 2) have no known referrers. The full list of deprecated LIDs (252 total):

urn:nasa:pds:context:facility:observatory.ctio
urn:nasa:pds:context:facility:observatory.eso
urn:nasa:pds:context:facility:observatory.irtf
urn:nasa:pds:context:facility:observatory.mauna_kea
urn:nasa:pds:context:instrument:a-star.clem1
urn:nasa:pds:context:instrument:acp.hp
urn:nasa:pds:context:instrument:alice.nh
urn:nasa:pds:context:instrument:alice.ro
urn:nasa:pds:context:instrument:apxs.mpfr
urn:nasa:pds:context:instrument:asi.gp
urn:nasa:pds:context:instrument:aspera-3.mex
urn:nasa:pds:context:instrument:b-star.clem1
urn:nasa:pds:context:instrument:cfi.con
urn:nasa:pds:context:instrument:cida.con
urn:nasa:pds:context:instrument:cida.sdu
urn:nasa:pds:context:instrument:cosima.ro
urn:nasa:pds:context:instrument:cospin-at.uly
urn:nasa:pds:context:instrument:cospin-het.uly
urn:nasa:pds:context:instrument:cospin-hft.uly
urn:nasa:pds:context:instrument:cospin-ket.uly
urn:nasa:pds:context:instrument:cospin-let.uly
urn:nasa:pds:context:instrument:crat.lro
urn:nasa:pds:context:instrument:crispimag.con
urn:nasa:pds:context:instrument:crispspec.con
urn:nasa:pds:context:instrument:crs.vg1
urn:nasa:pds:context:instrument:crs.vg2
urn:nasa:pds:context:instrument:ctio.2mass1m3.2masssouth
urn:nasa:pds:context:instrument:ctio.smarts1m0.fruttispec
urn:nasa:pds:context:instrument:ctio.smarts1m5.cassegrainspec
urn:nasa:pds:context:instrument:ctio.soar4m1.ghts
urn:nasa:pds:context:instrument:dfmi.sdu
urn:nasa:pds:context:instrument:did.gio
urn:nasa:pds:context:instrument:disr.hp
urn:nasa:pds:context:instrument:dlre.lro
urn:nasa:pds:context:instrument:ducma.vega1
urn:nasa:pds:context:instrument:ducma.vega2
urn:nasa:pds:context:instrument:dwe.gp
urn:nasa:pds:context:instrument:dwe.hp
urn:nasa:pds:context:instrument:dynsci.sdu
urn:nasa:pds:context:instrument:epa.gio
urn:nasa:pds:context:instrument:epac.uly
urn:nasa:pds:context:instrument:epas.ice
urn:nasa:pds:context:instrument:epd.go
urn:nasa:pds:context:instrument:epi.gp
urn:nasa:pds:context:instrument:epps.mess
urn:nasa:pds:context:instrument:eso.3m6.timmi2
urn:nasa:pds:context:instrument:eso.ntt.efosc2
urn:nasa:pds:context:instrument:eso.ntt.eso_multi
urn:nasa:pds:context:instrument:eso.ntt.eso_rild
urn:nasa:pds:context:instrument:eso.ntt.sofi
urn:nasa:pds:context:instrument:eso.photometric1m.denis
urn:nasa:pds:context:instrument:esp.suisei
urn:nasa:pds:context:instrument:fpa.iras
urn:nasa:pds:context:instrument:gas.uly
urn:nasa:pds:context:instrument:gcms.hp
urn:nasa:pds:context:instrument:gdds.go
urn:nasa:pds:context:instrument:giada.ro
urn:nasa:pds:context:instrument:gpms.gp
urn:nasa:pds:context:instrument:grav.jno
urn:nasa:pds:context:instrument:grb.uly
urn:nasa:pds:context:instrument:gre.gio
urn:nasa:pds:context:instrument:grs.ody
urn:nasa:pds:context:instrument:gwe.uly
urn:nasa:pds:context:instrument:had.gp
urn:nasa:pds:context:instrument:hasi.hp
urn:nasa:pds:context:instrument:hic.go
urn:nasa:pds:context:instrument:hires.clem1
urn:nasa:pds:context:instrument:hiscale.uly
urn:nasa:pds:context:instrument:hmc.gio
urn:nasa:pds:context:instrument:hrii.dif
urn:nasa:pds:context:instrument:hriv.dif
urn:nasa:pds:context:instrument:hrsc.mex
urn:nasa:pds:context:instrument:hstacs.hst
urn:nasa:pds:context:instrument:huygens_hk.hp
urn:nasa:pds:context:instrument:ici.ice
urn:nasa:pds:context:instrument:ids.ds1
urn:nasa:pds:context:instrument:iks.vega1
urn:nasa:pds:context:instrument:imf.sakig
urn:nasa:pds:context:instrument:ims.gio
urn:nasa:pds:context:instrument:iris.vg1
urn:nasa:pds:context:instrument:iris.vg2
urn:nasa:pds:context:instrument:irtf.3m0.cvf
urn:nasa:pds:context:instrument:irtf.3m0.mirac
urn:nasa:pds:context:instrument:irtf.3m0.mirac2
urn:nasa:pds:context:instrument:irtf.3m0.mirli
urn:nasa:pds:context:instrument:irtf.3m0.mirlin
urn:nasa:pds:context:instrument:irtf.3m0.mirsi
urn:nasa:pds:context:instrument:irtf.3m0.primo_1
urn:nasa:pds:context:instrument:issn.vg1
urn:nasa:pds:context:instrument:issn.vg2
urn:nasa:pds:context:instrument:issw.vg1
urn:nasa:pds:context:instrument:issw.vg2
urn:nasa:pds:context:instrument:its.dii
urn:nasa:pds:context:instrument:jpa.gio
urn:nasa:pds:context:instrument:lamp.lro
urn:nasa:pds:context:instrument:lecp.vg1
urn:nasa:pds:context:instrument:lecp.vg2
urn:nasa:pds:context:instrument:leisa.nh
urn:nasa:pds:context:instrument:lend.lro
urn:nasa:pds:context:instrument:lgrs-a.grail-a
urn:nasa:pds:context:instrument:lgrs-b.grail-b
urn:nasa:pds:context:instrument:lidar.clem1
urn:nasa:pds:context:instrument:lola.lro
urn:nasa:pds:context:instrument:lorri.nh
urn:nasa:pds:context:instrument:lrd.gp
urn:nasa:pds:context:instrument:lroc.lro
urn:nasa:pds:context:instrument:lwir.clem1
urn:nasa:pds:context:instrument:lwp.iue
urn:nasa:pds:context:instrument:lwr.iue
urn:nasa:pds:context:instrument:mag.gio
urn:nasa:pds:context:instrument:mag.go
urn:nasa:pds:context:instrument:mag.ice
urn:nasa:pds:context:instrument:mag.m10
urn:nasa:pds:context:instrument:mag.vg1
urn:nasa:pds:context:instrument:mag.vg2
urn:nasa:pds:context:instrument:marsis.mex
urn:nasa:pds:context:instrument:mauna_kea.2m24.snifs
urn:nasa:pds:context:instrument:mauna_kea.2m24.tinsley_phot
urn:nasa:pds:context:instrument:mauna_kea.2m24.uht2kccd
urn:nasa:pds:context:instrument:mcdonald.smith2m7.p45a_phot
urn:nasa:pds:context:instrument:micas.ds1
urn:nasa:pds:context:instrument:midas.ro
urn:nasa:pds:context:instrument:miro.ro
urn:nasa:pds:context:instrument:mischa.vega1
urn:nasa:pds:context:instrument:mischa.vega2
urn:nasa:pds:context:instrument:mrflro.lro
urn:nasa:pds:context:instrument:mri.dif
urn:nasa:pds:context:instrument:mrs.mex
urn:nasa:pds:context:instrument:mvic.nh
urn:nasa:pds:context:instrument:navcam.ro
urn:nasa:pds:context:instrument:navcam.sdu
urn:nasa:pds:context:instrument:nep.gp
urn:nasa:pds:context:instrument:nfr.gp
urn:nasa:pds:context:instrument:ngims.con
urn:nasa:pds:context:instrument:nims.go
urn:nasa:pds:context:instrument:nir.clem1
urn:nasa:pds:context:instrument:omega.mex
urn:nasa:pds:context:instrument:ope.gio
urn:nasa:pds:context:instrument:osinac.ro
urn:nasa:pds:context:instrument:osiwac.ro
urn:nasa:pds:context:instrument:pepe.ds1
urn:nasa:pds:context:instrument:pepssi.nh
urn:nasa:pds:context:instrument:pfs.mex
urn:nasa:pds:context:instrument:pia.gio
urn:nasa:pds:context:instrument:plawav.ice
urn:nasa:pds:context:instrument:pls.go
urn:nasa:pds:context:instrument:pls.m10
urn:nasa:pds:context:instrument:pls.vg1
urn:nasa:pds:context:instrument:pls.vg2
urn:nasa:pds:context:instrument:pm1.vega1
urn:nasa:pds:context:instrument:pm1.vega2
urn:nasa:pds:context:instrument:ppr.go
urn:nasa:pds:context:instrument:pps.vg2
urn:nasa:pds:context:instrument:pra.vg1
urn:nasa:pds:context:instrument:pra.vg2
urn:nasa:pds:context:instrument:puma.vega1
urn:nasa:pds:context:instrument:puma.vega2
urn:nasa:pds:context:instrument:pws.go
urn:nasa:pds:context:instrument:pws.vg1
urn:nasa:pds:context:instrument:pws.vg2
urn:nasa:pds:context:instrument:radwav.ice
urn:nasa:pds:context:instrument:rclt.mpfr
urn:nasa:pds:context:instrument:rcrr.mpfr
urn:nasa:pds:context:instrument:rcrt.mpfr
urn:nasa:pds:context:instrument:rdrs.mgn
urn:nasa:pds:context:instrument:roe.v15
urn:nasa:pds:context:instrument:roe.v16
urn:nasa:pds:context:instrument:rosina.ro
urn:nasa:pds:context:instrument:rpcica.ro
urn:nasa:pds:context:instrument:rpcies.ro
urn:nasa:pds:context:instrument:rpclap.ro
urn:nasa:pds:context:instrument:rpcmag.ro
urn:nasa:pds:context:instrument:rsi.ro
urn:nasa:pds:context:instrument:rss-vg1s.vg1
urn:nasa:pds:context:instrument:rss-vg2s.vg2
urn:nasa:pds:context:instrument:rss-vg2u.vg2
urn:nasa:pds:context:instrument:rss.clem1
urn:nasa:pds:context:instrument:rss.dif
urn:nasa:pds:context:instrument:rss.go
urn:nasa:pds:context:instrument:rss.lro
urn:nasa:pds:context:instrument:rss.mgn
urn:nasa:pds:context:instrument:rss.mo
urn:nasa:pds:context:instrument:rss.vg2
urn:nasa:pds:context:instrument:sce.uly
urn:nasa:pds:context:instrument:sdc.nh
urn:nasa:pds:context:instrument:sow.sakig
urn:nasa:pds:context:instrument:sp1.vega1
urn:nasa:pds:context:instrument:sp1.vega2
urn:nasa:pds:context:instrument:sp2.vega1
urn:nasa:pds:context:instrument:sp2.vega2
urn:nasa:pds:context:instrument:spicam.mex
urn:nasa:pds:context:instrument:spirit3.msx
urn:nasa:pds:context:instrument:src.sdu
urn:nasa:pds:context:instrument:ssd.go
urn:nasa:pds:context:instrument:ssi.go
urn:nasa:pds:context:instrument:ssp.hp
urn:nasa:pds:context:instrument:swap.nh
urn:nasa:pds:context:instrument:swics.uly
urn:nasa:pds:context:instrument:swoops.uly
urn:nasa:pds:context:instrument:swp.ice
urn:nasa:pds:context:instrument:swp.iue
urn:nasa:pds:context:instrument:telescope.spex.irtf3m0
urn:nasa:pds:context:instrument:tnm.vega1
urn:nasa:pds:context:instrument:tvs.vega1
urn:nasa:pds:context:instrument:tvs.vega2
urn:nasa:pds:context:instrument:udds.uly
urn:nasa:pds:context:instrument:uleca.ice
urn:nasa:pds:context:instrument:urap.uly
urn:nasa:pds:context:instrument:uvs.go
urn:nasa:pds:context:instrument:uvs.vg1
urn:nasa:pds:context:instrument:uvs.vg2
urn:nasa:pds:context:instrument:uvvis.clem1
urn:nasa:pds:context:instrument:vex.aspera4-els
urn:nasa:pds:context:instrument:vex.mag
urn:nasa:pds:context:instrument:vex.rss
urn:nasa:pds:context:instrument:vex.virtis
urn:nasa:pds:context:instrument:vhm-fgm.uly
urn:nasa:pds:context:instrument:virtis.ro
urn:nasa:pds:context:instrument:wfpc2.hst
urn:nasa:pds:context:instrument_host:spacecraft.gio
urn:nasa:pds:context:instrument_host:spacecraft.hp
urn:nasa:pds:context:instrument_host:spacecraft.iue
urn:nasa:pds:context:instrument_host:spacecraft.mex
urn:nasa:pds:context:instrument_host:spacecraft.rl
urn:nasa:pds:context:instrument_host:spacecraft.ro
urn:nasa:pds:context:instrument_host:spacecraft.uly
urn:nasa:pds:context:instrument_host:spacecraft.vex
urn:nasa:pds:context:investigation:mission.giotto
urn:nasa:pds:context:investigation:mission.giotto_extended_mission
urn:nasa:pds:context:investigation:mission.international_rosetta_mission
urn:nasa:pds:context:investigation:mission.international_ultraviolet_explorer
urn:nasa:pds:context:investigation:mission.iue
urn:nasa:pds:context:investigation:mission.mars_express
urn:nasa:pds:context:investigation:mission.ulysses
urn:nasa:pds:context:investigation:mission.venus_express
urn:nasa:pds:context:target:star.1swasp_j175207.01+373246.3
urn:nasa:pds:context:target:star.bd+36_2593
urn:nasa:pds:context:target:star.bd+47_2846
urn:nasa:pds:context:target:sun.sun
urn:nasa:pds:context:telescope:ctio.2mass1m3
urn:nasa:pds:context:telescope:ctio.smarts1m0
urn:nasa:pds:context:telescope:ctio.smarts1m5
urn:nasa:pds:context:telescope:ctio.soar4m1
urn:nasa:pds:context:telescope:eso.1m52
urn:nasa:pds:context:telescope:eso.3m6
urn:nasa:pds:context:telescope:eso.ntt
urn:nasa:pds:context:telescope:eso.photometric1m
urn:nasa:pds:context:telescope:irtf.3m0
urn:nasa:pds:context:telescope:mauna_kea.0m61
urn:nasa:pds:context:telescope:mauna_kea.2m24
urn:nasa:pds:context:telescope:mcdonald.smith2m7
urn:nasa:pds:context:telescope:siding_spring.att2m3

@jordanpadams
Copy link
Member Author

@rchenatjpl can we actually have a CSV for this?

previous_lid,new_lid

This is so we can track the mapping between the 2.

@rchenatjpl
Copy link

rchenatjpl commented Nov 29, 2022

Two of the old LIDs converted into multiple LIDs, so the .csv actually has 4 comma-separated columns
lidChange.csv

@matthewtiscareno
Copy link

Thank you, @rchenatjpl !!

You say that all deprecated LIDs have no known referrers, though I think this statement is confined to context product LIDs. Be that as it may, shouldn't it be true (at least for domains within which it's true that deprecated LIDs have no referrers) that the issue in the initial request is not needed?

@matthewtiscareno
Copy link

Funny. If you type :telescope:, GitHub turns it into 🔭 . This explains the icons within some of @rchenatjpl's LIDs.

@jordanpadams jordanpadams removed the B13.0 label Feb 3, 2023
@jordanpadams jordanpadams transferred this issue from NASA-PDS/pds-api Mar 28, 2024
@github-project-automation github-project-automation bot moved this to Release Backlog in B15.0 Mar 28, 2024
@jordanpadams jordanpadams changed the title As a user, I want to search for past versions of a product where the LID changed during the product history As a user, I want to search for all versions of a product where the LID changed during the product history Jul 10, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
Status: ToDo
Status: Release Backlog
Development

No branches or pull requests

7 participants