[fitsbits] FITS 'keyword dictionaries'
Joe Hourcle
oneiros at grace.nascom.nasa.gov
Fri Apr 11 20:12:17 EDT 2014
So, to build on the stuff that went around last week, and based on the recommendations from IVOA on using SKOS to represent vocabularies ... here's a short outline of what I'm thinking ... this is for just trying to document things that already exist, so we don't have to modify existing FITS files.
It's a bit rough, but I wanted to send what I had so far, as I'm getting ready to take leave for the next ~4 weeks, and I'd appreciate any comments, so I can try to refine this before the AAS meeting. I've cc'd my personal e-mail address (oneiros at annoying.org), which I'll be checking while on leave.
(and for those not familiar with SKOS ... it's the "Simple Knowledge Organization System", an ontology for describing thesauri and other controlled vocabularies; see http://www.unc.edu/~prjsmith/skos_guide.html for a relatively short explanation of it)
-Joe
...
Standardizing Documentation of FITS Headers:
Scope:
Attempting to create documentation to describe FITS files
*without* modifying the FITS files themselves.
Try to come up with a machine-actionable format that
can be used by software developers so they don't have to
do as much work to integrate each mission/instrument.
Things to try to do:
1. identify which keywords are supposed to be FITS standard,
which are discipline, mission, instrument, or processing
specific.
2. Provide units if not explicitly given
3. Identify range of possible values
4. Provide expansion / explanation of enumerations
5. Provide free text to describe how to interpret coded values
(eg, SDO 'QUALITY'), or for additional details.
6. Identify the autoritative value from a group of similar values.
(thus identifying which values are derived, and have more error)
1. Map concepts in SKOS to recreate the various 'keyword dictionaries'
KEYWORD: skos.prefLabel
REFERENCE: skos:exactMatch
NAME: skos:[exact|close]Match <associated UCD+> (once UCD is in SKOS)
EXAMPLE: skos:example
DESCRIPTION: skos:definition
Extend SKOS where necessary:
STATUS: fitsKeyword:isRequired
DEFAULT: fitsKeyword:defaultValue
INDEX: fitsKeyword:indexMin & indexMax
HDU: fitsKeyword:hdu
DATATYPE: fitsKeyword:valueType
RANGE: fitsKeyword:valueMin & valueMax ; stringLength
VALUE: (covered by DATATYPE and RANGE)
UNITS: fitsKeyword:units
COMMENT: fitsKeyword:cardComment
2. Use SKOS to describe semantic relationships [3]
2.1 Publish SKOS keyword definitions for FITS standard keywords
+ registered conventions
2.2 For each 'data collection', publish a SKOS list to
assert which keywords you're using based on other
standards.
To map between relationships in other schema:
use 'skos:exactMatch' ("concepts can be used interchangeably" [4])
or, if you're compliant with the definition but adding additional
assertions 'skos:broadMatch'
If the concept is the same, but the way the information is
recorded is different (eg, different date format), use
'skos:closeMatch' ("sufficiently similar" [4])
To map relationships *within* a given schema:
To identify interchangable keywords, use 'owl:sameAs';
for differences in encoding or units, use 'owl:equivalentClass'
use 'skos:Collection' or 'skos:orderedCollection'to group related
keywords (eg, the WCS keywords for a coordinate system).
2.3 For enumerations (fields where there is a controlled list
of permitted values), create the list using 'skos:Collection'.
May need an additional property to relate the keywords to its
permitted values.
Unresolved Issues :
1. We need to discuss with members of the semantic community what
the implications are of using OWL classes or properties for
keywords. We currently assume that keywords would be classes.
2. This will not correctly identify when groups are using a keyword
incorrectly (but think they are using it correctly); may require
peer review of the documentation.
3. We may need to have validation to make sure that assertions
aren't made about ambiguous 'standard' fields, or a way to
flag potentially problematic keywords.
4. I am not aware of a way to easily inherit from an entire schema.
Eg, can you do :
<InstrumentSchema> skos.broadMatch <MissionSchema>
... or do you need to to explicitly name each keyword?
5. In the case of #4, is it better to explicitly state each
keyword?
6. Should look into what SKOS / VOTable work has been done, as
they may have some conventions for portions of this.
[1] [FITS v3] http://dx.doi.org/10.1051/0004-6361/201015362
[2] [WCS Time] http://hea-www.cfa.harvard.edu/~arots/TimeWCS/
[3] [IVOA Vocab] http://www.ivoa.net/documents/latest/Vocabularies.html
[4] [SKOS] http://www.w3.org/2004/02/skos/
More information about the fitsbits
mailing list