Hitchhiker's Guide to Designing PDS4 Labels
This informal guide is here to tell you things you need to know about designing archive and metadata content as a separate activity distinct from the complications of actually writing XML or creating dictionaries. This guide is about organizing the information you want or need to include in you archive labels in a way that makes it easy to go from the design to actually coding the labels, while also helping to identify metadata that needs to be defined in a local project dictionary. (If you don't know what that means, don't worry - we'll get to it.)
By the time you've reached the end of this guide, you should be able to take the metadata requirements you get from the science, instrument, and pipeline programming teams, map them into the PDS4 Information Model structures, and create the sort of label design tables or schematics that would be included in a "Software Interface Specification", "Interface Control Document", or similar detailed design document.
What You Need to Know
- Familiarity with the terminology used by PDS to talk about its standards, and with the overall structure and content of a PDS4 archive. If you are completely new to the process, then you should read and be comfortable with the second and third sections of the PDS4 Concepts manual. Feel free to read the whole thing, of course, but what we'll be doing is focused on those two main sections.
- Basic knowledge of XML syntax will help, since we're going to use that in some of the examples.
What You Don't Need to Know
- We will not be delving into schema files. You do not need to know XML Schema Definition Language or Schematron (the two schema types used to define PDS4 data dictionaries). If you can read schema, you might find it helpful to compare the descriptions to actual schema content, but we'll be relying on English-language descriptions and diagrams for talking about schema structures in this guide.
- You do not need to know how to create and validate a PDS4 label. If you already know how to do that you might find it interesting to create a test label to play with some of the classes we'll be talking about, but we will be working in the more abstract design space in this guide.