Skip to content

Instantly share code, notes, and snippets.

@turbomam
Last active February 7, 2024 19:58
Show Gist options
  • Save turbomam/53eb95d767e33cb1afdc3aeccf9cef20 to your computer and use it in GitHub Desktop.
Save turbomam/53eb95d767e33cb1afdc3aeccf9cef20 to your computer and use it in GitHub Desktop.
person_set:
- id: example:ck1
name: Clark Kent
primary_email: clark.kent@example.com
age_in_years: 33
- id: example:superman1
name: Superman
primary_email: superman@example.com
age_in_years: 33
- id: example:kalel1
name: Kal-El
primary_email: kal-el@example.com
age_in_years: 33
qualified_identifier__set:
- maps_from: example:ck1
maps_to: example:superman1
provenance: related
assertion_date: '2021-09-15'
- maps_from: example:ck1
maps_to: example:kalel1
provenance: alternative
assertion_date: '2024-01-01'
name: qualified_identifier_collection_schema
id: http://example.com/qualified_identifier_collection_schema
prefixes:
qualified_identifier_collection_schema: http://example.com/qualified_identifier_collection_schema/
linkml: https://w3id.org/linkml/
example: https://example.org/
PATO: http://purl.obolibrary.org/obo/PATO_
xsd: http://www.w3.org/2001/XMLSchema#
shex: http://www.w3.org/ns/shex#
schema: http://schema.org/
imports:
- linkml:types
default_prefix: qualified_identifier_collection_schema
default_range: string
enums:
PersonStatus:
permissible_values:
ALIVE:
description: the person is living
meaning: PATO:0001421
DEAD:
description: the person is deceased
meaning: PATO:0001422
UNKNOWN:
description: the vital status is not known
todos:
- map this to an ontology
slots:
maps_from:
description: The identifier for something in the NMDC database
range: uriorcurie
maps_to:
description: The identifier for something in an external system that has a near-equivalence relation with somehting in the NMDC database
range: uriorcurie
provenance:
description: comments about whether the mapping is 1:1 (from NMDC to the external
system), many:1, 1:many, or many:many. - would we ever assert a many:many mapping?
- use an enumeration and add some other comment-like string field?
range: string
assertion_date:
description: A string representation of an ISO-8601 data when the mapping was
asserted.
comments:
- provide a pattern? see if date/time objects work in LinkML now?
range: string
id:
description: A unique identifier for a thing
slot_uri: schema:identifier
identifier: true
range: uriorcurie
name:
description: A human-readable name for a thing
slot_uri: schema:name
description:
description: A human-readable description for a thing
slot_uri: schema:description
primary_email:
description: The main email address of a person
slot_uri: schema:email
birth_date:
description: Date on which a person is born
slot_uri: schema:birthDate
range: date
age_in_years:
description: Number of years since birth
range: integer
vital_status:
description: living or dead status
range: PersonStatus
classes:
NamedThing:
description: A generic grouping for any identifiable entity
slots:
- id
- name
- description
class_uri: schema:Thing
Person:
description: Represents a Person
is_a: NamedThing
slots:
- primary_email
- birth_date
- age_in_years
- vital_status
slot_usage:
primary_email:
name: primary_email
pattern: ^\S+@[\S+\.]+\S+
Database:
attributes:
person_set:
multivalued: true
range: Person
inlined: true
inlined_as_list: true
qualified_identifier__set:
multivalued: true
range: QualifiedIdentifier
inlined: true
inlined_as_list: true
tree_root: true
QualifiedIdentifier:
description: A non-NMDC identifier for something that is also present in the NMDC
database. Provides support for saying when the identifier was asserted and assessments
about the quality of the identifier.
slots:
- maps_from
- maps_to
- provenance
- assertion_date
class_uri: linkml:QualifiedIdentifier
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment