Skip to content

Conversation

@yarikoptic
Copy link
Member

Shortcoming in question:

AFAIK this should result in no changes necessary to metadata records since none of those "features" was used. So even though we break the model, I think we could just go with "patch" level progress forward.

Individual commits have more information.

TODOs also

  • do something about genotype "Identifier" being abused to encapsulate records describing the genotype, hence better be parsed etc ??? file a separate issue.

@yarikoptic yarikoptic added the patch Increment the patch version when merged label Oct 31, 2024
@yarikoptic
Copy link
Member Author

@candleindark please review test fails and what needs to be done to make it green

since Any also represents List or anything else really.
I thought that it might be used somewhere in the meditor to edit dandiset metadata
but it seems that nothing of that type propagated into dandiset metadata so
it should not be effected

=== Do not change lines below ===
{
 "chain": [],
 "cmd": "git-sedi 'Union\\[Any, List\\[Any\\]\\]' Any",
 "exit": 0,
 "extra_inputs": [],
 "inputs": [],
 "outputs": [],
 "pwd": "."
}
^^^ Do not change lines above ^^^
…s) for Locus and Allele

So far I see no values with such data types used at all in dandi archive so we should not
break anything

An alternative would be to just make it a List[Identifier] always and not
bother allowing for the dance of singular-vs-plural.
That would avoid Union of a list with non-multivalued identifier. And we already have
data with string value describing the genotype -- it is not really an identifier!!!
@yarikoptic
Copy link
Member Author

I rebased and force - pushed. @candleindark do you think we would still need it?

@satra
Copy link
Member

satra commented Jan 14, 2026

did anyone check if an updated metamodel was released in linkml as chris mentioned in that original post on linkml.

@candleindark
Copy link
Member

did anyone check if an updated metamodel was released in linkml as chris mentioned in that original post on linkml.

The multivalued slot has been added to the SlotExpression class in the latestt meta model, version 1.8.x. With that change, I don't think this PR is needed any more as demo by the schema and data instance below with use of any_of.

personinfo.yaml
id: https://w3id.org/linkml/examples/personinfo
name: personinfo
prefixes:
  linkml: https://w3id.org/linkml/
imports:
  - linkml:types
default_range: string

classes:
  Person:
    attributes:
      id:
      full_name:
      aliases:
        range: Any
        any_of:
          - range: string
            multivalued: true
          - range: integer
      phone:
      age:
  Container:
    tree_root: true
    attributes:
      persons:
        multivalued: true
        inlined_as_list: true
        range: Person
data.yaml
persons:
  - id: ORCID:1234
    full_name: Clark Kent
    age: "32"
    phone: 555-555-5555
    aliases:
      - superman
      - man of steel
  - id: ORCID:4567
    full_name: Lois Lane
    age: "33"
    aliases: 42

Running linkml-validate -s personinfo.yaml data.yaml found no issues.

Copy link
Member

@candleindark candleindark left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

As commented above, this seems to be no longer needed.

@candleindark
Copy link
Member

@yarikoptic I think we can close this one since it is no longer needed as indicated at #257 (comment).

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

patch Increment the patch version when merged

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants