From e972d8d6e6bd68efd16ab0a2ea1cde620b5b7657 Mon Sep 17 00:00:00 2001 From: Nico Matentzoglu Date: Tue, 7 Mar 2023 16:29:33 +0200 Subject: [PATCH 1/2] Update sssom_schema.yaml --- src/sssom_schema/schema/sssom_schema.yaml | 18 +++++++++++++++++- 1 file changed, 17 insertions(+), 1 deletion(-) diff --git a/src/sssom_schema/schema/sssom_schema.yaml b/src/sssom_schema/schema/sssom_schema.yaml index 86ff1226..48f6ed1b 100644 --- a/src/sssom_schema/schema/sssom_schema.yaml +++ b/src/sssom_schema/schema/sssom_schema.yaml @@ -459,12 +459,23 @@ slots: other: description: Pipe separated list of key value pairs for properties not part of the SSSOM spec. Can be used to encode additional provenance data. - range: string + range: key value pair + multivalued: true + inlined_as_list: true + recommended: true comment: description: Free text field containing either curator notes or text generated by tool providing additional informative information. slot_uri: rdfs:comment range: string + key: + description: Generic slot for key, which should correspond to a entity reference + range: EntityReference + examples: + - value: myapi:mapping_id + value: + description: Generic slot for a value with no restrictions + range: string classes: mapping set: description: Represents a set of mappings @@ -563,3 +574,8 @@ classes: - mapping_set_group - last_updated - local_name + key value pair: + description: A simple structure to hold key-value pairs + slots: + - key + - value \ No newline at end of file From dc3741ba503b430ab69c7354e6dd7c8ecdb8bfa2 Mon Sep 17 00:00:00 2001 From: Nico Matentzoglu Date: Sat, 11 Mar 2023 11:44:34 +0200 Subject: [PATCH 2/2] Update extension idea --- examples/embedded/uberon-external.sssom.tsv | 20 ++++++++++++++ src/sssom_schema/schema/sssom_schema.yaml | 29 ++++++++++++++++----- 2 files changed, 42 insertions(+), 7 deletions(-) create mode 100644 examples/embedded/uberon-external.sssom.tsv diff --git a/examples/embedded/uberon-external.sssom.tsv b/examples/embedded/uberon-external.sssom.tsv new file mode 100644 index 00000000..07e7abff --- /dev/null +++ b/examples/embedded/uberon-external.sssom.tsv @@ -0,0 +1,20 @@ +# curie_map: +# FBbt: http://purl.obolibrary.org/obo/FBbt_ +# UBERON: http://purl.obolibrary.org/obo/UBERON_ +# ZFA: http://purl.obolibrary.org/obo/ZFA_ +# MYINTERNALNAMESPACE: http://my.internal.ns/vocab/ +# semapv: https://w3id.org/semapv/ +# skos: http://www.w3.org/2004/02/skos/core# +# dc: http://purl.org/dc/terms/ +# license: https://w3id.org/sssom/license/unspecified +# mapping_set_id: https://w3id.org/sssom/mappings/12345287613876278135 +# extension_definition: +# - key: modified +# value: dc:modified +# - key: mapping_id +# value: MYINTERNALNAMESPACE:mapping_id +# - key: funded_by +# value: foaf:fundedBy +subject_id predicate_id object_id mapping_justification modified mapping_id funded_by +UBERON:0000004 skos:exactMatch ZFA:0000047 semapv:UnspecifiedMatching 2022-03-01 M6972619762 NIH:RM1-HG010860-01 +UBERON:0000005 skos:exactMatch FBbt:00005157 semapv:UnspecifiedMatching 2022-02-01 M98879876121 NIH:RM1-HG010860-01 \ No newline at end of file diff --git a/src/sssom_schema/schema/sssom_schema.yaml b/src/sssom_schema/schema/sssom_schema.yaml index 48f6ed1b..b2c3b2f3 100644 --- a/src/sssom_schema/schema/sssom_schema.yaml +++ b/src/sssom_schema/schema/sssom_schema.yaml @@ -456,13 +456,23 @@ slots: slot_uri: rdfs:seeAlso range: string multivalued: true - other: - description: Pipe separated list of key value pairs for properties not part of - the SSSOM spec. Can be used to encode additional provenance data. + extension: + description: A way to extend SSSOM mapping fields with your use case specific information. + Any extension must be declaced in the extension_definition element on mapping_set level. + Extensions MUST NOT alter the semantics of the mapping, as they will be disregarded by most standard tools, + i.e. not included as part of API requests and others. range: key value pair multivalued: true - inlined_as_list: true - recommended: true + extension_definition: + description: A way to extend SSSOM mapping fields with your use case specific information. + # can I make the 'value' slot of type resource for this element, but otherwise re-use the generic key-value pair class? + # Or better keep that element optional and simply tread extensions as package that is ignored by transformers? + range: key value pair + multivalued: true + other: + description: An open ended field in which any information can be added that can be captured as a string. It is recommended + to avoid using this field in favour of the 'comment' or 'extenion fields. + range: string comment: description: Free text field containing either curator notes or text generated by tool providing additional informative information. @@ -470,9 +480,11 @@ slots: range: string key: description: Generic slot for key, which should correspond to a entity reference - range: EntityReference + range: string + # Any more restrictions, like alphabetical? examples: - - value: myapi:mapping_id + - value: mapping_id + - value: audience value: description: Generic slot for a value with no restrictions range: string @@ -508,6 +520,8 @@ classes: - see_also - other - comment + - extension + - extension_definition mapping: description: Represents an individual mapping between a pair of entities slots: @@ -551,6 +565,7 @@ classes: - see_also - other - comment + - extension class_uri: owl:Axiom mapping registry: description: A registry for managing mapping sets. It holds a set of