Data Versioning - NASA-PDS/product_relationships GitHub Wiki

Data Versioning

Graph

Turtle

Version "1.1" of "urn:nasa:pds:context:investigation:mission.orex" product:

<urn:nasa:pds:context:investigation:mission.orex::1.1>
  <pds:lid> <urn:nasa:pds:context:investigation:mission.orex>;
  <pds:vid> "1.1"^^xsd:float;
  <pds:product_class> "Product_Context";
  <pds:product_sub_class> "Investigation";
  <pds:title> "Origins, Spectral Interpreation, Resource Identification, Security, Regolith Explorer (OSIRIS-REx) Mission";
  <pds:name> "OSIRIS-REx";
  <pds:type> "Mission";
  <pds:start_date> "2016-09-08"^^xsd:date;
  <pds:stop_date> "3000-01-01"^^xsd:date.

Precomputed link to the latest LIDVID

This record has to be updated every time new version of "urn:nasa:pds:context:investigation:mission.orex" label is released.

<urn:nasa:pds:context:investigation:mission.orex> 
  <registry:last_lidvid> <urn:nasa:pds:context:investigation:mission.orex::1.1>.

Queries

1. Get last LIDVID of a LID reference

SELECT *
WHERE {
  <urn:nasa:pds:orex.spice:spice_kernels::8.0> <pds:lid_ref> ?lid_ref.
  ?lid_ref <registry:last_lidvid> ?lidvid_ref.
}

Another option we tried, with "is_last_version" flag.

SELECT *
WHERE {
  <urn:nasa:pds:orex.spice:spice_kernels::8.0> <pds:lid_ref> ?lid_ref.
  ?lidvid_ref <pds:lid> ?lid_ref
  ?lidvid_ref <registry:is_last_version> true.
}

2. Get basic contextual information about collection "urn:nasa:pds:orex.spice:spice_kernels::8.0"

SELECT 
  ?lidvid_ref ?ref_sub_class ?ref_type ?ref_name
WHERE {
  <urn:nasa:pds:orex.spice:spice_kernels::8.0> <pds:lid_ref> ?lid_ref.
  ?lid_ref <registry:last_lidvid> ?lidvid_ref.        # Get last lidvid
  ?lidvid_ref <pds:product_class> "Product_Context".
  ?lidvid_ref <pds:product_sub_class> ?ref_sub_class.
  ?lidvid_ref <pds:type> ?ref_type.
  ?lidvid_ref <pds:name> ?ref_name.
}

Results

lidvid_ref ref_sub_class ref_type ref_name
<urn:nasa:pds:context:investigation:mission.orex::1.1> "Investigation" "Mission" "OSIRIS-REx"
<urn:nasa:pds:context:instrument_host:spacecraft.orex::1.1> "Instrument_Host" "Spacecraft" "OSIRIS-REx"
<urn:nasa:pds:context:target:asteroid.101955_bennu::1.1> "Target" "Asteroid" "Bennu"

3. Get max version

MAX Aggregate Function

SELECT 
  (max(?vid) as ?max_vid)
WHERE {
  ?lidvid <pds:lid> <urn:nasa:pds:orex.spice:spice_kernels>.
  ?lidvid <pds:vid> ?vid.
}

Precomputed

SELECT 
  ?vid
WHERE {
  <urn:nasa:pds:orex.spice:spice_kernels> <registry:last_lidvid> ?lidvid.
  ?lidvid <pds:vid> ?vid.
}
⚠️ **GitHub.com Fallback** ⚠️