-
Notifications
You must be signed in to change notification settings - Fork 29
Description
In a discussion about the alignment of SSSOM metadata to the RDA Fair Mappings recommendations (mapping-commons/rda-fair-mappings#91), the possibility of making the mapping_tool* slots (mapping_tool, mapping_tool_version, mapping_tool_id) multi-valued has been evoked:
— Can this have multiple values?
— Not at the moment, no. But perhaps it can be requested - not sure this will make the "flat" sssom model too complex though.
A few things must be considered before we decide to make those slots multi-valued.
(A) mapping_tool and mapping_tool_version have existed since version 1.0 (and even before), and have always been mono-valued. Changing that now is, in my opinion, a type of change that should not happen in a SSSOM minor version. There may already be tools out there that assume those slots can only ever have one value.
(B) mapping_tool_id is a new slot in the upcoming SSSOM 1.1, so we can still decide to make it multi-valued, but the decision needs to be taken before we release SSSOM 1.1.
(C) Please remember that SSSOM does not guarantee that the order of values in a multi-valued slot is preserved. (This is so that multi-valued slots can be serialised in RDF as a simple unstructured list of triples, without having to use constructs such as rdf:Seq or rdf:List. This is considered more important than preserving the order of values in multi-valued slots.)
With mapping_tool and mapping_tool_version being mono-valued, it can be safely assumed that the (single) value of mapping_tool_version represents the version of the (single) mapping tool named in mapping_tool.
But if those slots become multi-valued, then as soon as they contain more than one value it is no longer possible to assume a link between them – there would be no way to know which mapping_tool_version value is associated to which mapping_tool.
⬆️ For those reasons:
- I am against making the 1.0-defined slots
mapping_toolandmapping_tool_versionmulti-valued. - I could accept making the new 1.1 slot
mapping_tool_idmulti-valued, but in this case it must be clear that the new slot is completely disconnected from bothmapping_toolandmapping_tool_version– as in,mapping_tooldoes not represent the name of any of the tools referenced inmapping_tool_id, andmapping_tool_versiondoes not represent the version of any of the tool referenced inmapping_tool_id.
Personally, I think that if you have used a combination of tools to establish a mapping, you should give that combination a name (or better, an identifier) and then reference the entire combination in mapping_tool (or better, in mapping_tool_id).