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 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.graphql b/schema/sssom.graphql index 5dcb8e07..dc8e4c05 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 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.shex b/schema/sssom.shex index 96e7b021..caac1051 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 97c8e068..6201faac 100644 --- a/schema/sssom.yaml +++ b/schema/sssom.yaml @@ -13,6 +13,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 @@ -145,7 +156,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 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])