From 060822f511439a2740a5b1e2059ac124a101084a Mon Sep 17 00:00:00 2001 From: Nico Matentzoglu Date: Mon, 31 May 2021 21:23:13 +0300 Subject: [PATCH 1/4] Trying to move mapping_cardinality enum --- schema/sssom-docs/Mapping.md | 4 +- schema/sssom.context.jsonld | 11 ++- schema/sssom.graphql | 2 +- schema/sssom.owl | 152 +++++++++++++++++------------------ schema/sssom.shex | 2 +- schema/sssom.yaml | 13 ++- schema/sssom_datamodel.py | 31 +++++-- 7 files changed, 127 insertions(+), 88 deletions(-) diff --git a/schema/sssom-docs/Mapping.md b/schema/sssom-docs/Mapping.md index c4839aba..779ffc17 100644 --- a/schema/sssom-docs/Mapping.md +++ b/schema/sssom-docs/Mapping.md @@ -7,7 +7,7 @@ Represents an individual mapping between a pair of entities URI: [sssom:Mapping](http://w3id.org/sssom/Mapping) -![img](http://yuml.me/diagram/nofunky;dir:TB/class/[Entity][Mapping],[MappingSet],[Entity]) +![img](http://yuml.me/diagram/nofunky;dir:TB/class/[Entity][Mapping],[MappingSet],[Entity]) ## Referenced by class @@ -38,7 +38,7 @@ URI: [sssom:Mapping](http://w3id.org/sssom/Mapping) * range: [String](types/String.md) * [mapping_cardinality](mapping_cardinality.md) OPT * Description: A string indicating whether this mapping is from a 1:1 (the subject_id maps to a single object_id), 1:n (the subject maps to more than one object_id), n:1, 1:0, 0:1 or n:n group. Note that this is a convenience field that should be derivable from the mapping set. - * range: [String](types/String.md) + * range: * [mapping_date](mapping_date.md) OPT * Description: The date the mapping was computed * range: [String](types/String.md) diff --git a/schema/sssom.context.jsonld b/schema/sssom.context.jsonld index b024e315..b2e52b13 100644 --- a/schema/sssom.context.jsonld +++ b/schema/sssom.context.jsonld @@ -1,5 +1,5 @@ { - "_comments": "Auto generated from sssom.yaml by jsonldcontextgen.py version: 0.1.1\n Generation date: 2021-05-20 10:51\n Schema: sssom\n \n id: http://w3id.org/sssom/schema/\n description: Datamodel for Simple Standard for Sharing Ontology Mappings (SSSOM)\n license: https://creativecommons.org/publicdomain/zero/1.0/\n ", + "_comments": "Auto generated from sssom.yaml by jsonldcontextgen.py version: 0.1.1\n Generation date: 2021-05-31 20:54\n Schema: sssom\n \n id: http://w3id.org/sssom/schema/\n description: Datamodel for Simple Standard for Sharing Ontology Mappings (SSSOM)\n license: https://creativecommons.org/publicdomain/zero/1.0/\n ", "@context": { "dc": "http://purl.org/dc/terms/", "dcterms": "http://purl.org/dc/terms/", @@ -7,6 +7,7 @@ "owl": "http://www.w3.org/2002/07/owl#", "rdf": "http://www.w3.org/1999/02/22-rdf-syntax-ns#", "rdfs": "http://www.w3.org/2000/01/rdf-schema#", + "skos": "http://www.w3.org/2004/02/skos/core#", "sssom": "http://w3id.org/sssom/", "@vocab": "http://w3id.org/sssom/", "confidence": { @@ -19,6 +20,14 @@ "information_content_mica_score": { "@type": "xsd:double" }, + "mapping_cardinality": { + "@context": { + "@vocab": "@null", + "text": "skos:notation", + "description": "skos:prefLabel", + "meaning": "@id" + } + }, "mapping_set_id": { "@type": "@id" }, diff --git a/schema/sssom.graphql b/schema/sssom.graphql index 0fb5fcf8..a7252755 100644 --- a/schema/sssom.graphql +++ b/schema/sssom.graphql @@ -25,7 +25,7 @@ type Mapping objectSource: String objectSourceVersion: String mappingProvider: String - mappingCardinality: String + mappingCardinality: MappingCardinalityEnum mappingTool: String mappingDate: String confidence: Double diff --git a/schema/sssom.owl b/schema/sssom.owl index a52cb46a..6126acba 100644 --- a/schema/sssom.owl +++ b/schema/sssom.owl @@ -10,69 +10,72 @@ linkml:ClassDefinition ; rdfs:label "mapping set" ; rdfs:subClassOf [ a owl:Restriction ; - owl:maxQualifiedCardinality 1 ; - owl:onClass ; - owl:onProperty ], + owl:allValuesFrom ; + owl:onProperty ], [ a owl:Restriction ; owl:maxQualifiedCardinality 1 ; owl:onClass linkml:String ; - owl:onProperty ], + owl:onProperty ], [ a owl:Restriction ; owl:maxQualifiedCardinality 1 ; owl:onClass linkml:String ; - owl:onProperty ], + owl:onProperty ], [ a owl:Restriction ; owl:maxQualifiedCardinality 1 ; owl:onClass linkml:String ; - owl:onProperty ], + owl:onProperty ], [ a owl:Restriction ; owl:maxQualifiedCardinality 1 ; - owl:onClass ; - owl:onProperty ], + owl:onClass linkml:String ; + owl:onProperty ], [ a owl:Restriction ; owl:maxQualifiedCardinality 1 ; owl:onClass linkml:String ; - owl:onProperty ], + owl:onProperty ], [ a owl:Restriction ; owl:maxQualifiedCardinality 1 ; owl:onClass linkml:String ; - owl:onProperty ], + owl:onProperty ], [ a owl:Restriction ; owl:maxQualifiedCardinality 1 ; - owl:onClass linkml:String ; - owl:onProperty ], + owl:onClass ; + owl:onProperty ], [ a owl:Restriction ; owl:maxQualifiedCardinality 1 ; owl:onClass linkml:String ; - owl:onProperty ], + owl:onProperty ], [ a owl:Restriction ; owl:maxQualifiedCardinality 1 ; owl:onClass linkml:String ; owl:onProperty ], + [ a owl:Restriction ; + owl:maxQualifiedCardinality 1 ; + owl:onClass ; + owl:onProperty ], [ a owl:Restriction ; owl:maxQualifiedCardinality 1 ; owl:onClass linkml:String ; - owl:onProperty ], + owl:onProperty ], [ a owl:Restriction ; owl:maxQualifiedCardinality 1 ; owl:onClass ; - owl:onProperty ], + owl:onProperty ], [ a owl:Restriction ; owl:maxQualifiedCardinality 1 ; owl:onClass linkml:String ; - owl:onProperty ], + owl:onProperty ], [ a owl:Restriction ; owl:maxQualifiedCardinality 1 ; owl:onClass linkml:String ; - owl:onProperty ], + owl:onProperty ], [ a owl:Restriction ; owl:maxQualifiedCardinality 1 ; owl:onClass linkml:String ; - owl:onProperty ], + owl:onProperty ], [ a owl:Restriction ; owl:maxQualifiedCardinality 1 ; owl:onClass linkml:String ; - owl:onProperty ], + owl:onProperty ], [ a owl:Restriction ; owl:maxQualifiedCardinality 1 ; owl:onClass linkml:String ; @@ -80,18 +83,15 @@ [ a owl:Restriction ; owl:maxQualifiedCardinality 1 ; owl:onClass linkml:String ; - owl:onProperty ], + owl:onProperty ], [ a owl:Restriction ; owl:maxQualifiedCardinality 1 ; owl:onClass ; - owl:onProperty ], - [ a owl:Restriction ; - owl:allValuesFrom ; - owl:onProperty ], + owl:onProperty ], [ a owl:Restriction ; owl:maxQualifiedCardinality 1 ; owl:onClass linkml:String ; - owl:onProperty ] ; + owl:onProperty ] ; skos:definition "Represents a set of mappings" . a owl:ObjectProperty, @@ -123,11 +123,11 @@ dcterms:license "https://creativecommons.org/publicdomain/zero/1.0/" ; rdfs:seeAlso "https://github.com/OBOFoundry/SSSOM" ; skos:definition "Datamodel for Simple Standard for Sharing Ontology Mappings (SSSOM)" ; - linkml:generation_date "2021-05-20 10:51" ; + linkml:generation_date "2021-05-31 20:54" ; linkml:metamodel_version "1.7.0" ; linkml:source_file "sssom.yaml" ; - linkml:source_file_date "Thu May 20 10:51:07 2021" ; - linkml:source_file_size 9773 . + linkml:source_file_date "Mon May 31 20:53:21 2021" ; + linkml:source_file_size 9918 . a owl:ObjectProperty, linkml:SlotDefinition ; @@ -291,7 +291,7 @@ linkml:Uriorcurie a owl:Class, a owl:ObjectProperty, linkml:SlotDefinition ; rdfs:label "mapping_cardinality" ; - rdfs:range linkml:String ; + rdfs:range ; skos:definition "A string indicating whether this mapping is from a 1:1 (the subject_id maps to a single object_id), 1:n (the subject maps to more than one object_id), n:1, 1:0, 0:1 or n:n group. Note that this is a convenience field that should be derivable from the mapping set." . a owl:ObjectProperty, @@ -397,67 +397,67 @@ linkml:Uriorcurie a owl:Class, rdfs:subClassOf [ a owl:Restriction ; owl:maxQualifiedCardinality 1 ; owl:onClass linkml:String ; - owl:onProperty ], + owl:onProperty ], [ a owl:Restriction ; owl:maxQualifiedCardinality 1 ; - owl:onClass linkml:Double ; - owl:onProperty ], + owl:onClass linkml:String ; + owl:onProperty ], [ a owl:Restriction ; owl:maxQualifiedCardinality 1 ; - owl:onClass linkml:String ; - owl:onProperty ], + owl:onClass ; + owl:onProperty ], [ a owl:Restriction ; owl:maxQualifiedCardinality 1 ; owl:onClass linkml:String ; - owl:onProperty ], + owl:onProperty ], [ a owl:Restriction ; owl:maxQualifiedCardinality 1 ; owl:onClass linkml:String ; - owl:onProperty ], + owl:onProperty ], [ a owl:Restriction ; owl:maxQualifiedCardinality 1 ; owl:onClass linkml:String ; - owl:onProperty ], + owl:onProperty ], [ a owl:Restriction ; owl:maxQualifiedCardinality 1 ; owl:onClass ; - owl:onProperty ], + owl:onProperty ], [ a owl:Restriction ; owl:maxQualifiedCardinality 1 ; - owl:onClass ; - owl:onProperty ], + owl:onClass linkml:String ; + owl:onProperty ], [ a owl:Restriction ; owl:maxQualifiedCardinality 1 ; owl:onClass linkml:String ; - owl:onProperty ], + owl:onProperty ], [ a owl:Restriction ; owl:maxQualifiedCardinality 1 ; - owl:onClass linkml:Double ; - owl:onProperty ], + owl:onClass ; + owl:onProperty ], [ a owl:Restriction ; owl:maxQualifiedCardinality 1 ; owl:onClass linkml:String ; - owl:onProperty ], + owl:onProperty ], [ a owl:Restriction ; owl:maxQualifiedCardinality 1 ; - owl:onClass ; - owl:onProperty ], + owl:onClass linkml:Double ; + owl:onProperty ], [ a owl:Restriction ; owl:maxQualifiedCardinality 1 ; owl:onClass linkml:String ; - owl:onProperty ], + owl:onProperty ], [ a owl:Restriction ; owl:maxQualifiedCardinality 1 ; owl:onClass linkml:String ; - owl:onProperty ], + owl:onProperty ], [ a owl:Restriction ; owl:maxQualifiedCardinality 1 ; owl:onClass linkml:String ; - owl:onProperty ], + owl:onProperty ], [ a owl:Restriction ; owl:maxQualifiedCardinality 1 ; owl:onClass linkml:String ; - owl:onProperty ], + owl:onProperty ], [ a owl:Restriction ; owl:maxQualifiedCardinality 1 ; owl:onClass linkml:String ; @@ -465,35 +465,31 @@ linkml:Uriorcurie a owl:Class, [ a owl:Restriction ; owl:maxQualifiedCardinality 1 ; owl:onClass linkml:String ; - owl:onProperty ], - [ a owl:Restriction ; - owl:maxQualifiedCardinality 1 ; - owl:onClass ; - owl:onProperty ], + owl:onProperty ], [ a owl:Restriction ; owl:maxQualifiedCardinality 1 ; owl:onClass linkml:String ; - owl:onProperty ], + owl:onProperty ], [ a owl:Restriction ; owl:maxQualifiedCardinality 1 ; owl:onClass ; - owl:onProperty ], + owl:onProperty ], [ a owl:Restriction ; owl:maxQualifiedCardinality 1 ; - owl:onClass linkml:String ; - owl:onProperty ], + owl:onClass ; + owl:onProperty ], [ a owl:Restriction ; owl:maxQualifiedCardinality 1 ; owl:onClass linkml:Double ; - owl:onProperty ], + owl:onProperty ], [ a owl:Restriction ; owl:maxQualifiedCardinality 1 ; - owl:onClass linkml:String ; - owl:onProperty ], + owl:onClass ; + owl:onProperty ], [ a owl:Restriction ; owl:maxQualifiedCardinality 1 ; owl:onClass linkml:String ; - owl:onProperty ], + owl:onProperty ], [ a owl:Restriction ; owl:maxQualifiedCardinality 1 ; owl:onClass linkml:String ; @@ -501,27 +497,31 @@ linkml:Uriorcurie a owl:Class, [ a owl:Restriction ; owl:maxQualifiedCardinality 1 ; owl:onClass linkml:String ; - owl:onProperty ], + owl:onProperty ], [ a owl:Restriction ; owl:maxQualifiedCardinality 1 ; owl:onClass linkml:String ; - owl:onProperty ], + owl:onProperty ], [ a owl:Restriction ; owl:maxQualifiedCardinality 1 ; - owl:onClass ; - owl:onProperty ], + owl:onClass linkml:Double ; + owl:onProperty ], [ a owl:Restriction ; owl:maxQualifiedCardinality 1 ; owl:onClass linkml:String ; - owl:onProperty ], + owl:onProperty ], [ a owl:Restriction ; owl:maxQualifiedCardinality 1 ; owl:onClass linkml:String ; - owl:onProperty ], + owl:onProperty ], [ a owl:Restriction ; owl:maxQualifiedCardinality 1 ; owl:onClass linkml:String ; - owl:onProperty ] ; + owl:onProperty ], + [ a owl:Restriction ; + owl:maxQualifiedCardinality 1 ; + owl:onClass ; + owl:onProperty ] ; skos:definition "Represents an individual mapping between a pair of entities" ; skos:exactMatch owl:Axiom . @@ -677,11 +677,7 @@ linkml:topValue a owl:DatatypeProperty ; rdfs:subClassOf [ a owl:Restriction ; owl:maxQualifiedCardinality 1 ; owl:onClass linkml:String ; - owl:onProperty ], - [ a owl:Restriction ; - owl:maxQualifiedCardinality 1 ; - owl:onClass linkml:String ; - owl:onProperty ], + owl:onProperty ], [ a owl:Restriction ; owl:onClass linkml:String ; owl:onProperty ; @@ -689,7 +685,11 @@ linkml:topValue a owl:DatatypeProperty ; [ a owl:Restriction ; owl:maxQualifiedCardinality 1 ; owl:onClass linkml:String ; - owl:onProperty ] ; + owl:onProperty ], + [ a owl:Restriction ; + owl:maxQualifiedCardinality 1 ; + owl:onClass linkml:String ; + owl:onProperty ] ; skos:definition "Represents any entity that can be mapped, such as an OWL class or SKOS concept" ; skos:exactMatch rdf:Resource . diff --git a/schema/sssom.shex b/schema/sssom.shex index 55f37da9..3d88b29d 100644 --- a/schema/sssom.shex +++ b/schema/sssom.shex @@ -60,7 +60,7 @@ linkml:Nodeidentifier NONLITERAL @linkml:String ? ; @linkml:String ? ; @linkml:String ? ; - @linkml:String ? ; + @ ? ; @linkml:String ? ; @linkml:String ? ; @linkml:Double ? ; diff --git a/schema/sssom.yaml b/schema/sssom.yaml index 0ae10b47..2418b3bf 100644 --- a/schema/sssom.yaml +++ b/schema/sssom.yaml @@ -12,6 +12,17 @@ default_curi_maps: - semweb_context - obo_context default_prefix: sssom + +enums: + mapping_cardinality_enum: + permissible_values: + 1:1: + 1:n: + n:1: + 1:0: + 0:1: + n:n: + slots: entity_field: abstract: true @@ -141,7 +152,7 @@ slots: maps to a single object_id), 1:n (the subject maps to more than one object_id), n:1, 1:0, 0:1 or n:n group. Note that this is a convenience field that should be derivable from the mapping set. - range: string + range: mapping_cardinality_enum mapping_tool: description: A reference to the tool or algorithm that was used to generate the mapping. Should be a URL pointing to more info about it, but can be free text. diff --git a/schema/sssom_datamodel.py b/schema/sssom_datamodel.py index 275e42b8..a7deeec8 100644 --- a/schema/sssom_datamodel.py +++ b/schema/sssom_datamodel.py @@ -1,5 +1,5 @@ # Auto generated from sssom.yaml by pythongen.py version: 0.9.0 -# Generation date: 2021-05-20 10:51 +# Generation date: 2021-05-31 20:53 # Schema: sssom # # id: http://w3id.org/sssom/schema/ @@ -179,7 +179,7 @@ class Mapping(YAMLRoot): object_source: Optional[str] = None object_source_version: Optional[str] = None mapping_provider: Optional[str] = None - mapping_cardinality: Optional[str] = None + mapping_cardinality: Optional[Union[str, "MappingCardinalityEnum"]] = None mapping_tool: Optional[str] = None mapping_date: Optional[str] = None confidence: Optional[float] = None @@ -247,8 +247,8 @@ def __post_init__(self, *_: List[str], **kwargs: Dict[str, Any]): if self.mapping_provider is not None and not isinstance(self.mapping_provider, str): self.mapping_provider = str(self.mapping_provider) - if self.mapping_cardinality is not None and not isinstance(self.mapping_cardinality, str): - self.mapping_cardinality = str(self.mapping_cardinality) + if self.mapping_cardinality is not None and not isinstance(self.mapping_cardinality, MappingCardinalityEnum): + self.mapping_cardinality = MappingCardinalityEnum(self.mapping_cardinality) if self.mapping_tool is not None and not isinstance(self.mapping_tool, str): self.mapping_tool = str(self.mapping_tool) @@ -331,7 +331,26 @@ def __post_init__(self, *_: List[str], **kwargs: Dict[str, Any]): # Enumerations - +class MappingCardinalityEnum(EnumDefinitionImpl): + + _defn = EnumDefinition( + name="MappingCardinalityEnum", + ) + + @classmethod + def _addvals(cls): + setattr(cls, "61", + PermissibleValue(text="61") ) + setattr(cls, "1:n", + PermissibleValue(text="1:n") ) + setattr(cls, "n:1", + PermissibleValue(text="n:1") ) + setattr(cls, "60", + PermissibleValue(text="60") ) + setattr(cls, "0:1", + PermissibleValue(text="0:1") ) + setattr(cls, "n:n", + PermissibleValue(text="n:n") ) # Slots class slots: @@ -419,7 +438,7 @@ class slots: model_uri=SSSOM.mapping_provider, domain=None, range=Optional[str]) slots.mapping_cardinality = Slot(uri=SSSOM.mapping_cardinality, name="mapping_cardinality", curie=SSSOM.curie('mapping_cardinality'), - model_uri=SSSOM.mapping_cardinality, domain=None, range=Optional[str]) + model_uri=SSSOM.mapping_cardinality, domain=None, range=Optional[Union[str, "MappingCardinalityEnum"]]) slots.mapping_tool = Slot(uri=SSSOM.mapping_tool, name="mapping_tool", curie=SSSOM.curie('mapping_tool'), model_uri=SSSOM.mapping_tool, domain=None, range=Optional[str]) From 57de5224ddd6e24a39a4c5500d4f557914660637 Mon Sep 17 00:00:00 2001 From: Nico Matentzoglu Date: Tue, 15 Jun 2021 10:43:54 +0300 Subject: [PATCH 2/4] Updated master --- schema/sssom.context.jsonld | 11 ++- schema/sssom.owl | 156 ++++++++++++++++++------------------ schema/sssom_datamodel.py | 31 +++++-- 3 files changed, 113 insertions(+), 85 deletions(-) diff --git a/schema/sssom.context.jsonld b/schema/sssom.context.jsonld index 02c08bd0..1150b25f 100644 --- a/schema/sssom.context.jsonld +++ b/schema/sssom.context.jsonld @@ -1,5 +1,5 @@ { - "_comments": "Auto generated from sssom.yaml by jsonldcontextgen.py version: 0.1.1\n Generation date: 2021-05-31 21:45\n Schema: sssom\n \n id: http://w3id.org/sssom/schema/\n description: Datamodel for Simple Standard for Sharing Ontology Mappings (SSSOM)\n license: https://creativecommons.org/publicdomain/zero/1.0/\n ", + "_comments": "Auto generated from sssom.yaml by jsonldcontextgen.py version: 0.1.1\n Generation date: 2021-06-15 10:43\n Schema: sssom\n \n id: http://w3id.org/sssom/schema/\n description: Datamodel for Simple Standard for Sharing Ontology Mappings (SSSOM)\n license: https://creativecommons.org/publicdomain/zero/1.0/\n ", "@context": { "dc": "http://purl.org/dc/terms/", "dcterms": "http://purl.org/dc/terms/", @@ -7,6 +7,7 @@ "owl": "http://www.w3.org/2002/07/owl#", "rdf": "http://www.w3.org/1999/02/22-rdf-syntax-ns#", "rdfs": "http://www.w3.org/2000/01/rdf-schema#", + "skos": "http://www.w3.org/2004/02/skos/core#", "sssom": "http://w3id.org/sssom/", "@vocab": "http://w3id.org/sssom/", "confidence": { @@ -19,6 +20,14 @@ "information_content_mica_score": { "@type": "xsd:double" }, + "mapping_cardinality": { + "@context": { + "@vocab": "@null", + "text": "skos:notation", + "description": "skos:prefLabel", + "meaning": "@id" + } + }, "mapping_set_id": { "@type": "@id" }, diff --git a/schema/sssom.owl b/schema/sssom.owl index e7732326..139000f3 100644 --- a/schema/sssom.owl +++ b/schema/sssom.owl @@ -10,68 +10,60 @@ linkml:ClassDefinition ; rdfs:label "mapping set" ; rdfs:subClassOf [ a owl:Restriction ; - owl:maxQualifiedCardinality 1 ; - owl:onClass linkml:String ; - owl:onProperty ], - [ a owl:Restriction ; - owl:allValuesFrom ; - owl:onProperty ], - [ a owl:Restriction ; - owl:maxQualifiedCardinality 1 ; - owl:onClass ; - owl:onProperty ], - [ a owl:Restriction ; owl:maxQualifiedCardinality 1 ; owl:onClass linkml:String ; owl:onProperty ], [ a owl:Restriction ; owl:maxQualifiedCardinality 1 ; - owl:onClass ; - owl:onProperty ], + owl:onClass linkml:String ; + owl:onProperty ], [ a owl:Restriction ; owl:maxQualifiedCardinality 1 ; owl:onClass linkml:String ; - owl:onProperty ], + owl:onProperty ], [ a owl:Restriction ; owl:maxQualifiedCardinality 1 ; owl:onClass linkml:String ; - owl:onProperty ], + owl:onProperty ], [ a owl:Restriction ; owl:maxQualifiedCardinality 1 ; owl:onClass linkml:String ; - owl:onProperty ], + owl:onProperty ], [ a owl:Restriction ; owl:maxQualifiedCardinality 1 ; owl:onClass linkml:String ; - owl:onProperty ], + owl:onProperty ], [ a owl:Restriction ; owl:maxQualifiedCardinality 1 ; owl:onClass linkml:String ; - owl:onProperty ], + owl:onProperty ], [ a owl:Restriction ; owl:maxQualifiedCardinality 1 ; owl:onClass linkml:String ; owl:onProperty ], [ a owl:Restriction ; owl:maxQualifiedCardinality 1 ; - owl:onClass linkml:String ; - owl:onProperty ], + owl:onClass ; + owl:onProperty ], [ a owl:Restriction ; owl:maxQualifiedCardinality 1 ; owl:onClass ; - owl:onProperty ], + owl:onProperty ], [ a owl:Restriction ; owl:maxQualifiedCardinality 1 ; owl:onClass linkml:String ; - owl:onProperty ], + owl:onProperty ], + [ a owl:Restriction ; + owl:allValuesFrom ; + owl:onProperty ], [ a owl:Restriction ; owl:maxQualifiedCardinality 1 ; owl:onClass linkml:String ; - owl:onProperty ], + owl:onProperty ], [ a owl:Restriction ; owl:maxQualifiedCardinality 1 ; - owl:onClass ; - owl:onProperty ], + owl:onClass linkml:String ; + owl:onProperty ], [ a owl:Restriction ; owl:maxQualifiedCardinality 1 ; owl:onClass linkml:String ; @@ -83,19 +75,27 @@ [ a owl:Restriction ; owl:maxQualifiedCardinality 1 ; owl:onClass linkml:String ; - owl:onProperty ], + owl:onProperty ], [ a owl:Restriction ; owl:maxQualifiedCardinality 1 ; owl:onClass linkml:String ; - owl:onProperty ], + owl:onProperty ], + [ a owl:Restriction ; + owl:maxQualifiedCardinality 1 ; + owl:onClass ; + owl:onProperty ], [ a owl:Restriction ; owl:maxQualifiedCardinality 1 ; owl:onClass linkml:String ; - owl:onProperty ], + owl:onProperty ], [ a owl:Restriction ; owl:maxQualifiedCardinality 1 ; owl:onClass linkml:String ; - owl:onProperty ] ; + owl:onProperty ], + [ a owl:Restriction ; + owl:maxQualifiedCardinality 1 ; + owl:onClass ; + owl:onProperty ] ; skos:definition "Represents a set of mappings" . a owl:ObjectProperty, @@ -127,11 +127,11 @@ dcterms:license "https://creativecommons.org/publicdomain/zero/1.0/" ; rdfs:seeAlso "https://github.com/OBOFoundry/SSSOM" ; skos:definition "Datamodel for Simple Standard for Sharing Ontology Mappings (SSSOM)" ; - linkml:generation_date "2021-05-31 21:45" ; + linkml:generation_date "2021-06-15 10:43" ; linkml:metamodel_version "1.7.0" ; linkml:source_file "sssom.yaml" ; - linkml:source_file_date "Mon May 31 21:44:45 2021" ; - linkml:source_file_size 9899 . + linkml:source_file_date "Tue Jun 15 10:36:55 2021" ; + linkml:source_file_size 10044 . a owl:ObjectProperty, linkml:SlotDefinition ; @@ -295,7 +295,7 @@ linkml:Uriorcurie a owl:Class, a owl:ObjectProperty, linkml:SlotDefinition ; rdfs:label "mapping_cardinality" ; - rdfs:range linkml:String ; + rdfs:range ; skos:definition "A string indicating whether this mapping is from a 1:1 (the subject_id maps to a single object_id), 1:n (the subject maps to more than one object_id), n:1, 1:0, 0:1 or n:n group. Note that this is a convenience field that should be derivable from the mapping set." . a owl:ObjectProperty, @@ -405,13 +405,25 @@ linkml:Uriorcurie a owl:Class, linkml:ClassDefinition ; rdfs:label "mapping" ; rdfs:subClassOf [ a owl:Restriction ; + owl:maxQualifiedCardinality 1 ; + owl:onClass ; + owl:onProperty ], + [ a owl:Restriction ; owl:maxQualifiedCardinality 1 ; owl:onClass linkml:String ; - owl:onProperty ], + owl:onProperty ], + [ a owl:Restriction ; + owl:maxQualifiedCardinality 1 ; + owl:onClass ; + owl:onProperty ], [ a owl:Restriction ; owl:maxQualifiedCardinality 1 ; owl:onClass linkml:String ; - owl:onProperty ], + owl:onProperty ], + [ a owl:Restriction ; + owl:maxQualifiedCardinality 1 ; + owl:onClass linkml:String ; + owl:onProperty ], [ a owl:Restriction ; owl:maxQualifiedCardinality 1 ; owl:onClass linkml:String ; @@ -419,119 +431,107 @@ linkml:Uriorcurie a owl:Class, [ a owl:Restriction ; owl:maxQualifiedCardinality 1 ; owl:onClass linkml:String ; - owl:onProperty ], + owl:onProperty ], [ a owl:Restriction ; owl:maxQualifiedCardinality 1 ; owl:onClass linkml:String ; - owl:onProperty ], + owl:onProperty ], [ a owl:Restriction ; owl:maxQualifiedCardinality 1 ; owl:onClass linkml:String ; - owl:onProperty ], + owl:onProperty ], [ a owl:Restriction ; owl:maxQualifiedCardinality 1 ; owl:onClass linkml:String ; - owl:onProperty ], + owl:onProperty ], [ a owl:Restriction ; owl:maxQualifiedCardinality 1 ; owl:onClass ; - owl:onProperty ], + owl:onProperty ], [ a owl:Restriction ; owl:maxQualifiedCardinality 1 ; owl:onClass linkml:String ; - owl:onProperty ], + owl:onProperty ], [ a owl:Restriction ; owl:maxQualifiedCardinality 1 ; - owl:onClass ; - owl:onProperty ], + owl:onClass linkml:String ; + owl:onProperty ], [ a owl:Restriction ; owl:maxQualifiedCardinality 1 ; owl:onClass linkml:String ; - owl:onProperty ], + owl:onProperty ], [ a owl:Restriction ; owl:maxQualifiedCardinality 1 ; owl:onClass linkml:Double ; - owl:onProperty ], + owl:onProperty ], [ a owl:Restriction ; owl:maxQualifiedCardinality 1 ; owl:onClass linkml:String ; - owl:onProperty ], + owl:onProperty ], [ a owl:Restriction ; owl:maxQualifiedCardinality 1 ; owl:onClass linkml:String ; - owl:onProperty ], + owl:onProperty ], [ a owl:Restriction ; owl:maxQualifiedCardinality 1 ; owl:onClass linkml:String ; - owl:onProperty ], + owl:onProperty ], [ a owl:Restriction ; owl:maxQualifiedCardinality 1 ; - owl:onClass ; - owl:onProperty ], + owl:onClass linkml:String ; + owl:onProperty ], [ a owl:Restriction ; owl:maxQualifiedCardinality 1 ; owl:onClass linkml:String ; - owl:onProperty ], + owl:onProperty ], [ a owl:Restriction ; owl:maxQualifiedCardinality 1 ; - owl:onClass linkml:String ; - owl:onProperty ], + owl:onClass ; + owl:onProperty ], [ a owl:Restriction ; owl:maxQualifiedCardinality 1 ; owl:onClass linkml:String ; - owl:onProperty ], + owl:onProperty ], [ a owl:Restriction ; owl:maxQualifiedCardinality 1 ; owl:onClass ; - owl:onProperty ], + owl:onProperty ], [ a owl:Restriction ; owl:maxQualifiedCardinality 1 ; owl:onClass linkml:String ; - owl:onProperty ], + owl:onProperty ], [ a owl:Restriction ; owl:maxQualifiedCardinality 1 ; owl:onClass linkml:Double ; - owl:onProperty ], + owl:onProperty ], [ a owl:Restriction ; owl:maxQualifiedCardinality 1 ; - owl:onClass linkml:String ; - owl:onProperty ], + owl:onClass linkml:Double ; + owl:onProperty ], [ a owl:Restriction ; owl:maxQualifiedCardinality 1 ; owl:onClass linkml:String ; - owl:onProperty ], + owl:onProperty ], [ a owl:Restriction ; owl:maxQualifiedCardinality 1 ; owl:onClass ; - owl:onProperty ], - [ a owl:Restriction ; - owl:maxQualifiedCardinality 1 ; - owl:onClass linkml:String ; - owl:onProperty ], + owl:onProperty ], [ a owl:Restriction ; owl:maxQualifiedCardinality 1 ; owl:onClass linkml:String ; - owl:onProperty ], - [ a owl:Restriction ; - owl:maxQualifiedCardinality 1 ; - owl:onClass linkml:Double ; - owl:onProperty ], + owl:onProperty ], [ a owl:Restriction ; owl:maxQualifiedCardinality 1 ; owl:onClass linkml:String ; - owl:onProperty ], + owl:onProperty ], [ a owl:Restriction ; owl:maxQualifiedCardinality 1 ; - owl:onClass linkml:String ; - owl:onProperty ], + owl:onClass ; + owl:onProperty ], [ a owl:Restriction ; owl:maxQualifiedCardinality 1 ; owl:onClass linkml:String ; - owl:onProperty ], - [ a owl:Restriction ; - owl:maxQualifiedCardinality 1 ; - owl:onClass ; - owl:onProperty ] ; + owl:onProperty ] ; skos:definition "Represents an individual mapping between a pair of entities" ; skos:exactMatch owl:Axiom . diff --git a/schema/sssom_datamodel.py b/schema/sssom_datamodel.py index e409391b..33ba064e 100644 --- a/schema/sssom_datamodel.py +++ b/schema/sssom_datamodel.py @@ -1,5 +1,5 @@ # Auto generated from sssom.yaml by pythongen.py version: 0.9.0 -# Generation date: 2021-05-31 21:44 +# Generation date: 2021-06-15 10:43 # Schema: sssom # # id: http://w3id.org/sssom/schema/ @@ -183,7 +183,7 @@ class Mapping(YAMLRoot): object_source: Optional[str] = None object_source_version: Optional[str] = None mapping_provider: Optional[str] = None - mapping_cardinality: Optional[str] = None + mapping_cardinality: Optional[Union[str, "MappingCardinalityEnum"]] = None mapping_tool: Optional[str] = None mapping_date: Optional[str] = None confidence: Optional[float] = None @@ -251,8 +251,8 @@ def __post_init__(self, *_: List[str], **kwargs: Dict[str, Any]): if self.mapping_provider is not None and not isinstance(self.mapping_provider, str): self.mapping_provider = str(self.mapping_provider) - if self.mapping_cardinality is not None and not isinstance(self.mapping_cardinality, str): - self.mapping_cardinality = str(self.mapping_cardinality) + if self.mapping_cardinality is not None and not isinstance(self.mapping_cardinality, MappingCardinalityEnum): + self.mapping_cardinality = MappingCardinalityEnum(self.mapping_cardinality) if self.mapping_tool is not None and not isinstance(self.mapping_tool, str): self.mapping_tool = str(self.mapping_tool) @@ -335,7 +335,26 @@ def __post_init__(self, *_: List[str], **kwargs: Dict[str, Any]): # Enumerations - +class MappingCardinalityEnum(EnumDefinitionImpl): + + _defn = EnumDefinition( + name="MappingCardinalityEnum", + ) + + @classmethod + def _addvals(cls): + setattr(cls, "61", + PermissibleValue(text="61") ) + setattr(cls, "1:n", + PermissibleValue(text="1:n") ) + setattr(cls, "n:1", + PermissibleValue(text="n:1") ) + setattr(cls, "60", + PermissibleValue(text="60") ) + setattr(cls, "0:1", + PermissibleValue(text="0:1") ) + setattr(cls, "n:n", + PermissibleValue(text="n:n") ) # Slots class slots: @@ -426,7 +445,7 @@ class slots: model_uri=SSSOM.mapping_provider, domain=None, range=Optional[str]) slots.mapping_cardinality = Slot(uri=SSSOM.mapping_cardinality, name="mapping_cardinality", curie=SSSOM.curie('mapping_cardinality'), - model_uri=SSSOM.mapping_cardinality, domain=None, range=Optional[str]) + model_uri=SSSOM.mapping_cardinality, domain=None, range=Optional[Union[str, "MappingCardinalityEnum"]]) slots.mapping_tool = Slot(uri=SSSOM.mapping_tool, name="mapping_tool", curie=SSSOM.curie('mapping_tool'), model_uri=SSSOM.mapping_tool, domain=None, range=Optional[str]) From cdd5d252de2843531396b50704c52ceed42f6073 Mon Sep 17 00:00:00 2001 From: Nico Matentzoglu Date: Wed, 16 Jun 2021 11:46:11 +0300 Subject: [PATCH 3/4] Update mapping cardinality schema --- schema/sssom.context.jsonld | 2 +- schema/sssom.owl | 160 ++++++++++++++++++------------------ schema/sssom.yaml | 12 +-- schema/sssom_datamodel.py | 10 +-- 4 files changed, 92 insertions(+), 92 deletions(-) diff --git a/schema/sssom.context.jsonld b/schema/sssom.context.jsonld index 1150b25f..d239e027 100644 --- a/schema/sssom.context.jsonld +++ b/schema/sssom.context.jsonld @@ -1,5 +1,5 @@ { - "_comments": "Auto generated from sssom.yaml by jsonldcontextgen.py version: 0.1.1\n Generation date: 2021-06-15 10:43\n Schema: sssom\n \n id: http://w3id.org/sssom/schema/\n description: Datamodel for Simple Standard for Sharing Ontology Mappings (SSSOM)\n license: https://creativecommons.org/publicdomain/zero/1.0/\n ", + "_comments": "Auto generated from sssom.yaml by jsonldcontextgen.py version: 0.1.1\n Generation date: 2021-06-16 10:52\n Schema: sssom\n \n id: http://w3id.org/sssom/schema/\n description: Datamodel for Simple Standard for Sharing Ontology Mappings (SSSOM)\n license: https://creativecommons.org/publicdomain/zero/1.0/\n ", "@context": { "dc": "http://purl.org/dc/terms/", "dcterms": "http://purl.org/dc/terms/", diff --git a/schema/sssom.owl b/schema/sssom.owl index 139000f3..4bc6fd67 100644 --- a/schema/sssom.owl +++ b/schema/sssom.owl @@ -12,7 +12,7 @@ rdfs:subClassOf [ a owl:Restriction ; owl:maxQualifiedCardinality 1 ; owl:onClass linkml:String ; - owl:onProperty ], + owl:onProperty ], [ a owl:Restriction ; owl:maxQualifiedCardinality 1 ; owl:onClass linkml:String ; @@ -20,82 +20,82 @@ [ a owl:Restriction ; owl:maxQualifiedCardinality 1 ; owl:onClass linkml:String ; - owl:onProperty ], + owl:onProperty ], [ a owl:Restriction ; owl:maxQualifiedCardinality 1 ; owl:onClass linkml:String ; - owl:onProperty ], + owl:onProperty ], [ a owl:Restriction ; owl:maxQualifiedCardinality 1 ; owl:onClass linkml:String ; - owl:onProperty ], + owl:onProperty ], + [ a owl:Restriction ; + owl:allValuesFrom ; + owl:onProperty ], [ a owl:Restriction ; owl:maxQualifiedCardinality 1 ; - owl:onClass linkml:String ; - owl:onProperty ], + owl:onClass ; + owl:onProperty ], [ a owl:Restriction ; owl:maxQualifiedCardinality 1 ; owl:onClass linkml:String ; - owl:onProperty ], + owl:onProperty ], [ a owl:Restriction ; owl:maxQualifiedCardinality 1 ; owl:onClass linkml:String ; - owl:onProperty ], + owl:onProperty ], [ a owl:Restriction ; owl:maxQualifiedCardinality 1 ; - owl:onClass ; - owl:onProperty ], + owl:onClass linkml:String ; + owl:onProperty ], [ a owl:Restriction ; owl:maxQualifiedCardinality 1 ; - owl:onClass ; - owl:onProperty ], + owl:onClass linkml:String ; + owl:onProperty ], [ a owl:Restriction ; owl:maxQualifiedCardinality 1 ; owl:onClass linkml:String ; owl:onProperty ], - [ a owl:Restriction ; - owl:allValuesFrom ; - owl:onProperty ], [ a owl:Restriction ; owl:maxQualifiedCardinality 1 ; owl:onClass linkml:String ; - owl:onProperty ], + owl:onProperty ], [ a owl:Restriction ; owl:maxQualifiedCardinality 1 ; - owl:onClass linkml:String ; - owl:onProperty ], + owl:onClass ; + owl:onProperty ], + [ a owl:Restriction ; + owl:maxQualifiedCardinality 1 ; + owl:onClass ; + owl:onProperty ], [ a owl:Restriction ; owl:maxQualifiedCardinality 1 ; owl:onClass linkml:String ; - owl:onProperty ], + owl:onProperty ], [ a owl:Restriction ; owl:maxQualifiedCardinality 1 ; owl:onClass linkml:String ; - owl:onProperty ], + owl:onProperty ], [ a owl:Restriction ; owl:maxQualifiedCardinality 1 ; owl:onClass linkml:String ; - owl:onProperty ], + owl:onProperty ], [ a owl:Restriction ; owl:maxQualifiedCardinality 1 ; owl:onClass linkml:String ; - owl:onProperty ], + owl:onProperty ], [ a owl:Restriction ; owl:maxQualifiedCardinality 1 ; owl:onClass ; - owl:onProperty ], + owl:onProperty ], [ a owl:Restriction ; owl:maxQualifiedCardinality 1 ; owl:onClass linkml:String ; - owl:onProperty ], + owl:onProperty ], [ a owl:Restriction ; owl:maxQualifiedCardinality 1 ; owl:onClass linkml:String ; - owl:onProperty ], - [ a owl:Restriction ; - owl:maxQualifiedCardinality 1 ; - owl:onClass ; - owl:onProperty ] ; + owl:onProperty ] ; skos:definition "Represents a set of mappings" . a owl:ObjectProperty, @@ -127,11 +127,11 @@ dcterms:license "https://creativecommons.org/publicdomain/zero/1.0/" ; rdfs:seeAlso "https://github.com/OBOFoundry/SSSOM" ; skos:definition "Datamodel for Simple Standard for Sharing Ontology Mappings (SSSOM)" ; - linkml:generation_date "2021-06-15 10:43" ; + linkml:generation_date "2021-06-16 10:52" ; linkml:metamodel_version "1.7.0" ; linkml:source_file "sssom.yaml" ; - linkml:source_file_date "Tue Jun 15 10:36:55 2021" ; - linkml:source_file_size 10044 . + linkml:source_file_date "Wed Jun 16 10:51:09 2021" ; + linkml:source_file_size 10056 . a owl:ObjectProperty, linkml:SlotDefinition ; @@ -406,24 +406,28 @@ linkml:Uriorcurie a owl:Class, rdfs:label "mapping" ; rdfs:subClassOf [ a owl:Restriction ; owl:maxQualifiedCardinality 1 ; - owl:onClass ; - owl:onProperty ], + owl:onClass linkml:Double ; + owl:onProperty ], [ a owl:Restriction ; owl:maxQualifiedCardinality 1 ; - owl:onClass linkml:String ; - owl:onProperty ], + owl:onClass linkml:Double ; + owl:onProperty ], + [ a owl:Restriction ; + owl:maxQualifiedCardinality 1 ; + owl:onClass ; + owl:onProperty ], [ a owl:Restriction ; owl:maxQualifiedCardinality 1 ; owl:onClass ; owl:onProperty ], [ a owl:Restriction ; owl:maxQualifiedCardinality 1 ; - owl:onClass linkml:String ; - owl:onProperty ], + owl:onClass ; + owl:onProperty ], [ a owl:Restriction ; owl:maxQualifiedCardinality 1 ; owl:onClass linkml:String ; - owl:onProperty ], + owl:onProperty ], [ a owl:Restriction ; owl:maxQualifiedCardinality 1 ; owl:onClass linkml:String ; @@ -431,59 +435,43 @@ linkml:Uriorcurie a owl:Class, [ a owl:Restriction ; owl:maxQualifiedCardinality 1 ; owl:onClass linkml:String ; - owl:onProperty ], + owl:onProperty ], [ a owl:Restriction ; owl:maxQualifiedCardinality 1 ; owl:onClass linkml:String ; - owl:onProperty ], + owl:onProperty ], [ a owl:Restriction ; owl:maxQualifiedCardinality 1 ; owl:onClass linkml:String ; - owl:onProperty ], + owl:onProperty ], [ a owl:Restriction ; owl:maxQualifiedCardinality 1 ; owl:onClass linkml:String ; owl:onProperty ], - [ a owl:Restriction ; - owl:maxQualifiedCardinality 1 ; - owl:onClass ; - owl:onProperty ], - [ a owl:Restriction ; - owl:maxQualifiedCardinality 1 ; - owl:onClass linkml:String ; - owl:onProperty ], [ a owl:Restriction ; owl:maxQualifiedCardinality 1 ; owl:onClass linkml:String ; - owl:onProperty ], + owl:onProperty ], [ a owl:Restriction ; owl:maxQualifiedCardinality 1 ; owl:onClass linkml:String ; - owl:onProperty ], - [ a owl:Restriction ; - owl:maxQualifiedCardinality 1 ; - owl:onClass linkml:Double ; - owl:onProperty ], + owl:onProperty ], [ a owl:Restriction ; owl:maxQualifiedCardinality 1 ; owl:onClass linkml:String ; - owl:onProperty ], + owl:onProperty ], [ a owl:Restriction ; owl:maxQualifiedCardinality 1 ; owl:onClass linkml:String ; - owl:onProperty ], + owl:onProperty ], [ a owl:Restriction ; owl:maxQualifiedCardinality 1 ; owl:onClass linkml:String ; - owl:onProperty ], + owl:onProperty ], [ a owl:Restriction ; owl:maxQualifiedCardinality 1 ; owl:onClass linkml:String ; owl:onProperty ], - [ a owl:Restriction ; - owl:maxQualifiedCardinality 1 ; - owl:onClass linkml:String ; - owl:onProperty ], [ a owl:Restriction ; owl:maxQualifiedCardinality 1 ; owl:onClass ; @@ -494,24 +482,24 @@ linkml:Uriorcurie a owl:Class, owl:onProperty ], [ a owl:Restriction ; owl:maxQualifiedCardinality 1 ; - owl:onClass ; - owl:onProperty ], + owl:onClass linkml:String ; + owl:onProperty ], [ a owl:Restriction ; owl:maxQualifiedCardinality 1 ; owl:onClass linkml:String ; - owl:onProperty ], + owl:onProperty ], [ a owl:Restriction ; owl:maxQualifiedCardinality 1 ; - owl:onClass linkml:Double ; - owl:onProperty ], + owl:onClass ; + owl:onProperty ], [ a owl:Restriction ; owl:maxQualifiedCardinality 1 ; - owl:onClass linkml:Double ; - owl:onProperty ], + owl:onClass linkml:String ; + owl:onProperty ], [ a owl:Restriction ; owl:maxQualifiedCardinality 1 ; owl:onClass linkml:String ; - owl:onProperty ], + owl:onProperty ], [ a owl:Restriction ; owl:maxQualifiedCardinality 1 ; owl:onClass ; @@ -519,11 +507,15 @@ linkml:Uriorcurie a owl:Class, [ a owl:Restriction ; owl:maxQualifiedCardinality 1 ; owl:onClass linkml:String ; - owl:onProperty ], + owl:onProperty ], [ a owl:Restriction ; owl:maxQualifiedCardinality 1 ; owl:onClass linkml:String ; - owl:onProperty ], + owl:onProperty ], + [ a owl:Restriction ; + owl:maxQualifiedCardinality 1 ; + owl:onClass linkml:String ; + owl:onProperty ], [ a owl:Restriction ; owl:maxQualifiedCardinality 1 ; owl:onClass ; @@ -531,7 +523,15 @@ linkml:Uriorcurie a owl:Class, [ a owl:Restriction ; owl:maxQualifiedCardinality 1 ; owl:onClass linkml:String ; - owl:onProperty ] ; + owl:onProperty ], + [ a owl:Restriction ; + owl:maxQualifiedCardinality 1 ; + owl:onClass linkml:Double ; + owl:onProperty ], + [ a owl:Restriction ; + owl:maxQualifiedCardinality 1 ; + owl:onClass linkml:String ; + owl:onProperty ] ; skos:definition "Represents an individual mapping between a pair of entities" ; skos:exactMatch owl:Axiom . @@ -685,21 +685,21 @@ linkml:topValue a owl:DatatypeProperty ; linkml:ClassDefinition ; rdfs:label "entity" ; rdfs:subClassOf [ a owl:Restriction ; - owl:onClass linkml:String ; - owl:onProperty ; - owl:qualifiedCardinality 1 ], - [ a owl:Restriction ; owl:maxQualifiedCardinality 1 ; owl:onClass linkml:String ; owl:onProperty ], [ a owl:Restriction ; owl:maxQualifiedCardinality 1 ; owl:onClass linkml:String ; - owl:onProperty ], + owl:onProperty ], + [ a owl:Restriction ; + owl:onClass linkml:String ; + owl:onProperty ; + owl:qualifiedCardinality 1 ], [ a owl:Restriction ; owl:maxQualifiedCardinality 1 ; owl:onClass linkml:String ; - owl:onProperty ] ; + owl:onProperty ] ; skos:definition "Represents any entity that can be mapped, such as an OWL class or SKOS concept" ; skos:exactMatch rdf:Resource . diff --git a/schema/sssom.yaml b/schema/sssom.yaml index 792af242..50a1e2e2 100644 --- a/schema/sssom.yaml +++ b/schema/sssom.yaml @@ -16,12 +16,12 @@ default_prefix: sssom enums: mapping_cardinality_enum: permissible_values: - 1:1: - 1:n: - n:1: - 1:0: - 0:1: - n:n: + "1:1": + "1:n": + "n:1": + "1:0": + "0:1": + "n:n": slots: entity_field: diff --git a/schema/sssom_datamodel.py b/schema/sssom_datamodel.py index 33ba064e..42e9c9d4 100644 --- a/schema/sssom_datamodel.py +++ b/schema/sssom_datamodel.py @@ -1,5 +1,5 @@ # Auto generated from sssom.yaml by pythongen.py version: 0.9.0 -# Generation date: 2021-06-15 10:43 +# Generation date: 2021-06-16 10:52 # Schema: sssom # # id: http://w3id.org/sssom/schema/ @@ -343,14 +343,14 @@ class MappingCardinalityEnum(EnumDefinitionImpl): @classmethod def _addvals(cls): - setattr(cls, "61", - PermissibleValue(text="61") ) + setattr(cls, "1:1", + PermissibleValue(text="1:1") ) setattr(cls, "1:n", PermissibleValue(text="1:n") ) setattr(cls, "n:1", PermissibleValue(text="n:1") ) - setattr(cls, "60", - PermissibleValue(text="60") ) + setattr(cls, "1:0", + PermissibleValue(text="1:0") ) setattr(cls, "0:1", PermissibleValue(text="0:1") ) setattr(cls, "n:n", From 22c354839921a2ee486fc7e154a863b3a77a7a7d Mon Sep 17 00:00:00 2001 From: Nico Matentzoglu Date: Tue, 22 Jun 2021 10:25:39 +0300 Subject: [PATCH 4/4] Updates --- schema/sssom.context.jsonld | 11 +- schema/sssom.external.context.jsonld | 1 + schema/sssom.owl | 158 +++++++++++++-------------- schema/sssom_datamodel.py | 31 +++++- 4 files changed, 115 insertions(+), 86 deletions(-) diff --git a/schema/sssom.context.jsonld b/schema/sssom.context.jsonld index 6282c486..8fa7a22f 100644 --- a/schema/sssom.context.jsonld +++ b/schema/sssom.context.jsonld @@ -1,5 +1,5 @@ { - "_comments": "Auto generated from sssom.yaml by jsonldcontextgen.py version: 0.1.1\n Generation date: 2021-06-17 16:27\n Schema: sssom\n \n id: http://w3id.org/sssom/schema/\n description: Datamodel for Simple Standard for Sharing Ontology Mappings (SSSOM)\n license: https://creativecommons.org/publicdomain/zero/1.0/\n ", + "_comments": "Auto generated from sssom.yaml by jsonldcontextgen.py version: 0.1.1\n Generation date: 2021-06-22 10:25\n Schema: sssom\n \n id: http://w3id.org/sssom/schema/\n description: Datamodel for Simple Standard for Sharing Ontology Mappings (SSSOM)\n license: https://creativecommons.org/publicdomain/zero/1.0/\n ", "@context": { "dc": "http://purl.org/dc/terms/", "dcterms": "http://purl.org/dc/terms/", @@ -8,6 +8,7 @@ "owl": "http://www.w3.org/2002/07/owl#", "rdf": "http://www.w3.org/1999/02/22-rdf-syntax-ns#", "rdfs": "http://www.w3.org/2000/01/rdf-schema#", + "skos": "http://www.w3.org/2004/02/skos/core#", "sssom": "http://w3id.org/sssom/", "@vocab": "http://w3id.org/sssom/", "confidence": { @@ -20,6 +21,14 @@ "information_content_mica_score": { "@type": "xsd:double" }, + "mapping_cardinality": { + "@context": { + "@vocab": "@null", + "text": "skos:notation", + "description": "skos:prefLabel", + "meaning": "@id" + } + }, "mapping_set_id": { "@type": "@id" }, diff --git a/schema/sssom.external.context.jsonld b/schema/sssom.external.context.jsonld index 7b7bf49c..9d19ff31 100644 --- a/schema/sssom.external.context.jsonld +++ b/schema/sssom.external.context.jsonld @@ -1145,6 +1145,7 @@ "wb": "https://www.wormbase.org/get?name=", "wb.rnai": "https://www.wormbase.org/species/c_elegans/rnai/", "wd": "http://www.wikidata.org/entity/", + "webelements": "https://www.webelements.com/", "wgs84": "http://www.w3.org/2003/01/geo/wgs84_pos#", "wikidata": "http://www.wikidata.org/entity/", "wikidata.property": "https://www.wikidata.org/wiki/Property:", diff --git a/schema/sssom.owl b/schema/sssom.owl index ea637a98..33c15420 100644 --- a/schema/sssom.owl +++ b/schema/sssom.owl @@ -12,11 +12,11 @@ rdfs:subClassOf [ a owl:Restriction ; owl:maxQualifiedCardinality 1 ; owl:onClass linkml:String ; - owl:onProperty ], + owl:onProperty ], [ a owl:Restriction ; owl:maxQualifiedCardinality 1 ; owl:onClass linkml:String ; - owl:onProperty ], + owl:onProperty ], [ a owl:Restriction ; owl:maxQualifiedCardinality 1 ; owl:onClass linkml:String ; @@ -24,66 +24,66 @@ [ a owl:Restriction ; owl:maxQualifiedCardinality 1 ; owl:onClass linkml:String ; - owl:onProperty ], + owl:onProperty ], [ a owl:Restriction ; owl:maxQualifiedCardinality 1 ; - owl:onClass linkml:String ; - owl:onProperty ], + owl:onClass ; + owl:onProperty ], [ a owl:Restriction ; owl:maxQualifiedCardinality 1 ; owl:onClass linkml:String ; - owl:onProperty ], - [ a owl:Restriction ; - owl:maxQualifiedCardinality 1 ; - owl:onClass ; - owl:onProperty ], + owl:onProperty ], [ a owl:Restriction ; owl:maxQualifiedCardinality 1 ; owl:onClass linkml:String ; - owl:onProperty ], + owl:onProperty ], + [ a owl:Restriction ; + owl:allValuesFrom ; + owl:onProperty ], [ a owl:Restriction ; owl:maxQualifiedCardinality 1 ; - owl:onClass ; - owl:onProperty ], + owl:onClass linkml:String ; + owl:onProperty ], [ a owl:Restriction ; owl:maxQualifiedCardinality 1 ; owl:onClass linkml:String ; - owl:onProperty ], + owl:onProperty ], [ a owl:Restriction ; owl:maxQualifiedCardinality 1 ; owl:onClass linkml:String ; - owl:onProperty ], + owl:onProperty ], [ a owl:Restriction ; owl:maxQualifiedCardinality 1 ; owl:onClass linkml:String ; - owl:onProperty ], + owl:onProperty ], [ a owl:Restriction ; owl:maxQualifiedCardinality 1 ; owl:onClass linkml:String ; owl:onProperty ], [ a owl:Restriction ; - owl:allValuesFrom ; - owl:onProperty ], + owl:maxQualifiedCardinality 1 ; + owl:onClass ; + owl:onProperty ], [ a owl:Restriction ; owl:maxQualifiedCardinality 1 ; owl:onClass linkml:String ; - owl:onProperty ], + owl:onProperty ], [ a owl:Restriction ; owl:maxQualifiedCardinality 1 ; owl:onClass linkml:String ; - owl:onProperty ], + owl:onProperty ], [ a owl:Restriction ; owl:maxQualifiedCardinality 1 ; owl:onClass linkml:String ; - owl:onProperty ], + owl:onProperty ], [ a owl:Restriction ; owl:maxQualifiedCardinality 1 ; - owl:onClass linkml:String ; - owl:onProperty ], + owl:onClass ; + owl:onProperty ], [ a owl:Restriction ; owl:maxQualifiedCardinality 1 ; owl:onClass linkml:String ; - owl:onProperty ], + owl:onProperty ], [ a owl:Restriction ; owl:maxQualifiedCardinality 1 ; owl:onClass ; @@ -91,11 +91,11 @@ [ a owl:Restriction ; owl:maxQualifiedCardinality 1 ; owl:onClass linkml:String ; - owl:onProperty ], + owl:onProperty ], [ a owl:Restriction ; owl:maxQualifiedCardinality 1 ; - owl:onClass ; - owl:onProperty ] ; + owl:onClass linkml:String ; + owl:onProperty ] ; skos:definition "Represents a set of mappings" . a owl:ObjectProperty, @@ -127,11 +127,11 @@ dcterms:license "https://creativecommons.org/publicdomain/zero/1.0/" ; rdfs:seeAlso "https://github.com/OBOFoundry/SSSOM" ; skos:definition "Datamodel for Simple Standard for Sharing Ontology Mappings (SSSOM)" ; - linkml:generation_date "2021-06-17 16:27" ; + linkml:generation_date "2021-06-22 10:25" ; linkml:metamodel_version "1.7.0" ; linkml:source_file "sssom.yaml" ; - linkml:source_file_date "Thu Jun 17 16:25:04 2021" ; - linkml:source_file_size 9957 . + linkml:source_file_date "Tue Jun 22 10:23:38 2021" ; + linkml:source_file_size 10114 . a owl:ObjectProperty, linkml:SlotDefinition ; @@ -295,7 +295,7 @@ linkml:Uriorcurie a owl:Class, a owl:ObjectProperty, linkml:SlotDefinition ; rdfs:label "mapping_cardinality" ; - rdfs:range linkml:String ; + rdfs:range ; skos:definition "A string indicating whether this mapping is from a 1:1 (the subject_id maps to a single object_id), 1:n (the subject maps to more than one object_id), n:1, 1:0, 0:1 or n:n group. Note that this is a convenience field that should be derivable from the mapping set." . a owl:ObjectProperty, @@ -405,49 +405,37 @@ linkml:Uriorcurie a owl:Class, linkml:ClassDefinition ; rdfs:label "mapping" ; rdfs:subClassOf [ a owl:Restriction ; - owl:maxQualifiedCardinality 1 ; - owl:onClass ; - owl:onProperty ], - [ a owl:Restriction ; owl:maxQualifiedCardinality 1 ; owl:onClass linkml:String ; - owl:onProperty ], - [ a owl:Restriction ; - owl:maxQualifiedCardinality 1 ; - owl:onClass ; - owl:onProperty ], - [ a owl:Restriction ; - owl:maxQualifiedCardinality 1 ; - owl:onClass linkml:Double ; - owl:onProperty ], + owl:onProperty ], [ a owl:Restriction ; owl:maxQualifiedCardinality 1 ; owl:onClass linkml:String ; - owl:onProperty ], + owl:onProperty ], [ a owl:Restriction ; owl:maxQualifiedCardinality 1 ; owl:onClass linkml:String ; - owl:onProperty ], + owl:onProperty ], [ a owl:Restriction ; owl:maxQualifiedCardinality 1 ; - owl:onClass linkml:String ; - owl:onProperty ], + owl:onClass linkml:Double ; + owl:onProperty ], [ a owl:Restriction ; owl:maxQualifiedCardinality 1 ; owl:onClass linkml:String ; - owl:onProperty ], + owl:onProperty ], [ a owl:Restriction ; owl:maxQualifiedCardinality 1 ; owl:onClass linkml:String ; - owl:onProperty ], + owl:onProperty ], [ a owl:Restriction ; owl:maxQualifiedCardinality 1 ; owl:onClass linkml:String ; - owl:onProperty ], + owl:onProperty ], [ a owl:Restriction ; owl:maxQualifiedCardinality 1 ; owl:onClass linkml:String ; - owl:onProperty ], + owl:onProperty ], [ a owl:Restriction ; owl:maxQualifiedCardinality 1 ; owl:onClass linkml:String ; @@ -455,83 +443,95 @@ linkml:Uriorcurie a owl:Class, [ a owl:Restriction ; owl:maxQualifiedCardinality 1 ; owl:onClass linkml:String ; - owl:onProperty ], + owl:onProperty ], [ a owl:Restriction ; owl:maxQualifiedCardinality 1 ; owl:onClass linkml:String ; - owl:onProperty ], + owl:onProperty ], [ a owl:Restriction ; owl:maxQualifiedCardinality 1 ; owl:onClass linkml:String ; - owl:onProperty ], + owl:onProperty ], [ a owl:Restriction ; owl:maxQualifiedCardinality 1 ; owl:onClass ; - owl:onProperty ], + owl:onProperty ], [ a owl:Restriction ; owl:maxQualifiedCardinality 1 ; owl:onClass ; owl:onProperty ], + [ a owl:Restriction ; + owl:maxQualifiedCardinality 1 ; + owl:onClass linkml:Double ; + owl:onProperty ], [ a owl:Restriction ; owl:maxQualifiedCardinality 1 ; owl:onClass linkml:String ; - owl:onProperty ], + owl:onProperty ], [ a owl:Restriction ; owl:maxQualifiedCardinality 1 ; owl:onClass linkml:String ; - owl:onProperty ], + owl:onProperty ], + [ a owl:Restriction ; + owl:maxQualifiedCardinality 1 ; + owl:onClass ; + owl:onProperty ], [ a owl:Restriction ; owl:maxQualifiedCardinality 1 ; owl:onClass linkml:String ; - owl:onProperty ], + owl:onProperty ], [ a owl:Restriction ; owl:maxQualifiedCardinality 1 ; owl:onClass linkml:String ; - owl:onProperty ], + owl:onProperty ], + [ a owl:Restriction ; + owl:maxQualifiedCardinality 1 ; + owl:onClass ; + owl:onProperty ], [ a owl:Restriction ; owl:maxQualifiedCardinality 1 ; owl:onClass linkml:String ; - owl:onProperty ], + owl:onProperty ], [ a owl:Restriction ; owl:maxQualifiedCardinality 1 ; owl:onClass ; owl:onProperty ], + [ a owl:Restriction ; + owl:maxQualifiedCardinality 1 ; + owl:onClass linkml:String ; + owl:onProperty ], [ a owl:Restriction ; owl:maxQualifiedCardinality 1 ; owl:onClass ; - owl:onProperty ], + owl:onProperty ], [ a owl:Restriction ; owl:maxQualifiedCardinality 1 ; - owl:onClass linkml:String ; - owl:onProperty ], + owl:onClass linkml:Double ; + owl:onProperty ], [ a owl:Restriction ; owl:maxQualifiedCardinality 1 ; owl:onClass linkml:String ; - owl:onProperty ], + owl:onProperty ], [ a owl:Restriction ; owl:maxQualifiedCardinality 1 ; owl:onClass linkml:String ; owl:onProperty ], [ a owl:Restriction ; owl:maxQualifiedCardinality 1 ; - owl:onClass linkml:Double ; - owl:onProperty ], + owl:onClass ; + owl:onProperty ], [ a owl:Restriction ; owl:maxQualifiedCardinality 1 ; owl:onClass linkml:String ; - owl:onProperty ], - [ a owl:Restriction ; - owl:maxQualifiedCardinality 1 ; - owl:onClass linkml:Double ; - owl:onProperty ], + owl:onProperty ], [ a owl:Restriction ; owl:maxQualifiedCardinality 1 ; owl:onClass linkml:String ; - owl:onProperty ], + owl:onProperty ], [ a owl:Restriction ; owl:maxQualifiedCardinality 1 ; owl:onClass linkml:String ; - owl:onProperty ] ; + owl:onProperty ] ; skos:definition "Represents an individual mapping between a pair of entities" ; skos:exactMatch owl:Axiom . @@ -685,21 +685,21 @@ linkml:topValue a owl:DatatypeProperty ; linkml:ClassDefinition ; rdfs:label "entity" ; rdfs:subClassOf [ a owl:Restriction ; - owl:maxQualifiedCardinality 1 ; owl:onClass linkml:String ; - owl:onProperty ], + owl:onProperty ; + owl:qualifiedCardinality 1 ], [ a owl:Restriction ; owl:maxQualifiedCardinality 1 ; owl:onClass linkml:String ; - owl:onProperty ], + owl:onProperty ], [ a owl:Restriction ; owl:maxQualifiedCardinality 1 ; owl:onClass linkml:String ; owl:onProperty ], [ a owl:Restriction ; + owl:maxQualifiedCardinality 1 ; owl:onClass linkml:String ; - owl:onProperty ; - owl:qualifiedCardinality 1 ] ; + owl:onProperty ] ; skos:definition "Represents any entity that can be mapped, such as an OWL class or SKOS concept" ; skos:exactMatch rdf:Resource . diff --git a/schema/sssom_datamodel.py b/schema/sssom_datamodel.py index b57fe048..4796aa5c 100644 --- a/schema/sssom_datamodel.py +++ b/schema/sssom_datamodel.py @@ -1,5 +1,5 @@ # Auto generated from sssom.yaml by pythongen.py version: 0.9.0 -# Generation date: 2021-06-17 16:27 +# Generation date: 2021-06-22 10:24 # Schema: sssom # # id: http://w3id.org/sssom/schema/ @@ -184,7 +184,7 @@ class Mapping(YAMLRoot): object_source: Optional[str] = None object_source_version: Optional[str] = None mapping_provider: Optional[str] = None - mapping_cardinality: Optional[str] = None + mapping_cardinality: Optional[Union[str, "MappingCardinalityEnum"]] = None mapping_tool: Optional[str] = None mapping_date: Optional[str] = None confidence: Optional[float] = None @@ -252,8 +252,8 @@ def __post_init__(self, *_: List[str], **kwargs: Dict[str, Any]): if self.mapping_provider is not None and not isinstance(self.mapping_provider, str): self.mapping_provider = str(self.mapping_provider) - if self.mapping_cardinality is not None and not isinstance(self.mapping_cardinality, str): - self.mapping_cardinality = str(self.mapping_cardinality) + if self.mapping_cardinality is not None and not isinstance(self.mapping_cardinality, MappingCardinalityEnum): + self.mapping_cardinality = MappingCardinalityEnum(self.mapping_cardinality) if self.mapping_tool is not None and not isinstance(self.mapping_tool, str): self.mapping_tool = str(self.mapping_tool) @@ -336,7 +336,26 @@ def __post_init__(self, *_: List[str], **kwargs: Dict[str, Any]): # Enumerations - +class MappingCardinalityEnum(EnumDefinitionImpl): + + _defn = EnumDefinition( + name="MappingCardinalityEnum", + ) + + @classmethod + def _addvals(cls): + setattr(cls, "1:1", + PermissibleValue(text="1:1") ) + setattr(cls, "1:n", + PermissibleValue(text="1:n") ) + setattr(cls, "n:1", + PermissibleValue(text="n:1") ) + setattr(cls, "1:0", + PermissibleValue(text="1:0") ) + setattr(cls, "0:1", + PermissibleValue(text="0:1") ) + setattr(cls, "n:n", + PermissibleValue(text="n:n") ) # Slots class slots: @@ -427,7 +446,7 @@ class slots: model_uri=SSSOM.mapping_provider, domain=None, range=Optional[str]) slots.mapping_cardinality = Slot(uri=SSSOM.mapping_cardinality, name="mapping_cardinality", curie=SSSOM.curie('mapping_cardinality'), - model_uri=SSSOM.mapping_cardinality, domain=None, range=Optional[str]) + model_uri=SSSOM.mapping_cardinality, domain=None, range=Optional[Union[str, "MappingCardinalityEnum"]]) slots.mapping_tool = Slot(uri=SSSOM.mapping_tool, name="mapping_tool", curie=SSSOM.curie('mapping_tool'), model_uri=SSSOM.mapping_tool, domain=None, range=Optional[str])