Skip to content

Make mapping_tool* slots multi-valued? #491

@gouttegd

Description

@gouttegd

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_tool and mapping_tool_version multi-valued.
  • I could accept making the new 1.1 slot mapping_tool_id multi-valued, but in this case it must be clear that the new slot is completely disconnected from both mapping_tool and mapping_tool_version – as in, mapping_tool does not represent the name of any of the tools referenced in mapping_tool_id, and mapping_tool_version does not represent the version of any of the tool referenced in mapping_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).

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions