Skip to content

Enhance enums #112

Description

@cmungall

We have the option of providing linkml:meaning to PVs in enums

Note: this does affect RDF serialization - a URI is used rather than string literal, so if we do this it should be < 1.0.0 release

  predicate_modifier_enum:
    permissible_values:
      Not: Negating the mapping predicate. The meaning of the triple becomes subject_id is not a predicate_id match to object_id.

some vocabs like SNOMED include a code for NO but this is overkill I think

We could use owl:complementOf or NegativePropertyAssertion but this doesn't seem quite right

  mapping_cardinality_enum:
    permissible_values:
      "1:1": One-to-one mapping
      "1:n": One-to-many mapping
      "n:1": Many-to-one mapping
      "1:0": One-to-none mapping
      "0:1": None-to-one mapping
      "n:n": Many-to-many mapping

not aware of any vocabulary

  match_type_enum:
    permissible_values:
      Lexical: Lexical match
      Logical: Logical match
      HumanCurated: Match based on human expert opinion
      Complex: Match based on a variety of different strategies
      Unspecified: Unknown match type
      SemanticSimilarity: Match based on close semantic similarity

not aware of a single vocab but could potentially be added to EDAM?

  match_term_type_enum:
    permissible_values:
      TermMatch: A match between two terms
      ConceptMatch: A match between two SKOS concepts
      ClassMatch: A match between two OWL/RDFS classes
      ObjectPropertyMatch: A match between two OWL object properties
      IndividualMatch: A match between two OWL Individuals
      DataPropertyMatch: A match between two OWL object properties

not aware... but I think this enum needs more docs.

A match between a Class and OP is valid - e.g. many classes in PATO are famously reifications of RO properties

and where is AnnotationProperty?

What about a match between two distinct property types? Perfectly valid. And what if we match something like a skos property, which we are punning?

I think we would just use TermMatch as a generic catch-all? This is fine but maybe say this explicitly

  preprocessing_method_enum:
    permissible_values:
      Stemming:
      TaxonRestrictionRemoval:

not aware of a vocabulary

options

  1. try harder to find terms, maybe engage EDAM, SWO
  2. leave with no meaning, but adorn with mappings later (will still be serialized as literals)
  3. make our own IDs, in the SSSOM namespace, with the option of a standalone ontology later

If we want to do 3, we should do before the 1.0 release

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