NASA-PDS / pds4-information-model

The software tools and data necessary for generating the Information Model including PDS4 ontology, data, and information model.
https://nasa-pds.github.io/pds4-information-model/
Other
11 stars 7 forks source link

As a namespace steward, I want to provide a more specific definition/nuance for a generic attribute #469

Open jordanpadams opened 2 years ago

jordanpadams commented 2 years ago

💪 Motivation

...so that I can give a mission- or discipline- specific definition for a particular cross-referenced/re-usable attribute.

Example 1: where a mission needs to provide a more specific definition for a generic Discipline Namespace attribute spacecraft_clock_start from the Mission Information Commons namespace

Example 2: a Discipline Namespace is looking to re-use a class and accompanying attributes from another namespace, how do I provide nuanced definitions for those classes and attributes.

📖 Additional Details

We need to document and create easy mechanisms to provide:

  1. More specific definitions within an IngestLDD when cross-referencing a class/attribute
  2. More specific definitions within a Mission Namespace to enable sufficient documentation within that namespace.

⚖️ Acceptance Criteria

Given When I perform Then I expect

⚙️ Engineering Details

jordanpadams commented 10 months ago

Related SCR: See https://github.com/NASA-PDS/PDS4-CCB/issues/12

tloubrieu-jpl commented 5 months ago

New inputs from Bob Deen on that.

tloubrieu-jpl commented 3 months ago

@jshughes we need to better define an achievable scope for this ticket.

jshughes commented 2 months ago

@jordanpadams @tloubrieu-jpl @rsjoyner Using GPT4o, we now have prototype code that reads and parses B. Deen's Nuance spreadsheet and writes a PDS4 to an XML file . This class contains a simple list of class members. Each line of the spreadsheet generates one to six entries, one for each nuance mapping to a single PDS4 attributes. The missions are currently CADRE, M20. MSAM, MSL, NSYT, and VGR. To make the XML file available to the system one possibility would be something like a Product_Ancillary / Stream_Text. However, "XML" is not currently allowed.

Comments and suggestions are welcome.

Example: The first line of the nuance spreadsheet produces the following xml. The nuance is COORDINATE_SYSTEM_INDEX. The PDS4 attribute is index_value_number.

    <Terminological_Entry_SKOS>
        <identifier>271b39f3-dfbd-4cd2-8a1b-54a385131b42</identifier>
        <registration_authority>PDS4</registration_authority>
        <namespace_id>geom</namespace_id>
        <steward_id>pds</steward_id>
        <title>COORDINATE_SYSTEM_INDEX</title>
        <description>null</description>
        <skos_relation_name>closeMatch</skos_relation_name>
        <model_object_id>index_value_number</model_object_id>
        <model_object_type>Nuance</model_object_type>
    </Terminological_Entry_SKOS>
jordanpadams commented 2 months ago

@jshughes looks great! glad we have some code to generate something for us.

I assume all of this information is what is needed in order to capture this within the IM, but how can we abstract this away from the LDD stewards so they can provide this information within an IngestLDD?

I am thinking something like:

    <DD_Attribute>
        <name>geom.index_value_number</name>
        ...
        <DD_Attribute_SKOS>
            <title>COORDINATE_SYSTEM_INDEX</title>
            <skos_relation_name>closeMatch</skos_relation_name>
            <model_object_type>Nuance</model_object_type>
            <!-- etc -->
    </DD_Attribute>

Also, how can we add more information about the type of nuance? For instance, this is a "synonym" nuance where it is the VICAR keyword equivalent vs. a description nuance vs. a mission-specific enumeration (e.g. mission_phase_name values for a specific mission)?