{ "$defs": { "EntityTypeEnum": { "description": "", "enum": [ "owl class", "owl object property", "owl data property", "owl annotation property", "owl named individual", "skos concept", "rdfs resource", "rdfs class", "rdfs literal", "rdfs datatype", "rdf property" ], "title": "EntityTypeEnum", "type": "string" }, "ExtensionDefinition": { "additionalProperties": false, "description": "A definition of an extension (non-standard) slot.", "properties": { "property": { "description": "The property associated with the extension slot. It is intended to provide a non-ambiguous meaning to the slot (contrary to the slot_name, which for brevity reasons may be ambiguous).", "type": "string" }, "slot_name": { "description": "The name of the extension slot.", "type": "string" }, "type_hint": { "description": "Expected type of the values of the extension slot.", "type": "string" } }, "required": [ "slot_name" ], "title": "ExtensionDefinition", "type": "object" }, "Mapping": { "additionalProperties": false, "allOf": [ { "if": { "properties": { "subject_type": { "const": "rdfs literal" } }, "required": [ "subject_type" ] }, "then": { "properties": { "subject_label": {} }, "required": [ "subject_label" ] } }, { "if": { "properties": { "subject_type": { "not": { "anyOf": [ { "const": "rdfs literal" } ] } } }, "required": [ "subject_type" ] }, "then": { "properties": { "subject_id": {} }, "required": [ "subject_id" ] } }, { "if": { "properties": { "object_type": { "const": "rdfs literal" } }, "required": [ "object_type" ] }, "then": { "properties": { "object_label": {} }, "required": [ "object_label" ] } }, { "if": { "properties": { "object_type": { "not": { "anyOf": [ { "const": "rdfs literal" } ] } } }, "required": [ "object_type" ] }, "then": { "properties": { "object_id": {} }, "required": [ "object_id" ] } } ], "description": "Represents an individual mapping between a pair of entities", "properties": { "author_id": { "description": "Identifies the persons or groups responsible for asserting the mappings. Recommended to be a list of ORCIDs or otherwise identifying URIs.", "items": { "type": "string" }, "type": "array" }, "author_label": { "description": "A string identifying the author of this mapping. In the spirit of provenance, consider using author_id instead.", "items": { "type": "string" }, "type": "array" }, "comment": { "description": "Free text field containing either curator notes or text generated by tool providing additional informative information.", "type": "string" }, "confidence": { "description": "A score between 0 and 1 to denote the confidence or probability that the match is correct, where 1 denotes total confidence.", "maximum": 1.0, "minimum": 0.0, "type": "number" }, "creator_id": { "description": "Identifies the persons or groups responsible for the creation of the mapping. The creator is the agent that put the mapping in its published form, which may be different from the author, which is a person that was actively involved in the assertion of the mapping. Recommended to be a list of ORCIDs or otherwise identifying URIs.", "items": { "type": "string" }, "type": "array" }, "creator_label": { "description": "A string identifying the creator of this mapping. In the spirit of provenance, consider using creator_id instead.", "items": { "type": "string" }, "type": "array" }, "curation_rule": { "description": "A curation rule is a (potentially) complex condition executed by an agent that led to the establishment of a mapping. Curation rules often involve complex domain-specific considerations, which are hard to capture in an automated fashion. The curation rule is captured as a resource rather than a string, which enables higher levels of transparency and sharing across mapping sets. The URI representation of the curation rule is expected to be a resolvable identifier which provides details about the nature of the curation rule.", "items": { "type": "string" }, "type": "array" }, "curation_rule_text": { "description": "A curation rule is a (potentially) complex condition executed by an agent that led to the establishment of a mapping. Curation rules often involve complex domain-specific considerations, which are hard to capture in an automated fashion. The curation rule should be captured as a resource (entity reference) rather than a string (see curation_rule element), which enables higher levels of transparency and sharing across mapping sets. The textual representation of curation rule is intended to be used in cases where (1) the creation of a resource is not practical from the perspective of the mapping_provider and (2) as an additional piece of metadata to augment the curation_rule element with a human readable text.", "items": { "type": "string" }, "type": "array" }, "issue_tracker_item": { "description": "The issue tracker item discussing this mapping.", "type": "string" }, "license": { "description": "A url to the license of the mapping. In absence of a license we assume no license.", "type": "string" }, "mapping_cardinality": { "$ref": "#/$defs/MappingCardinalityEnum", "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." }, "mapping_date": { "description": "The date the mapping was asserted. This is different from the date the mapping was published or compiled in a SSSOM file.", "format": "date", "type": "string" }, "mapping_justification": { "anyOf": [ { "const": "semapv:LexicalMatching" }, { "const": "semapv:LogicalReasoning" }, { "const": "semapv:CompositeMatching" }, { "const": "semapv:UnspecifiedMatching" }, { "const": "semapv:SemanticSimilarityThresholdMatching" }, { "const": "semapv:LexicalSimilarityThresholdMatching" }, { "const": "semapv:MappingChaining" }, { "const": "semapv:MappingReview" }, { "const": "semapv:ManualMappingCuration" } ], "description": "A mapping justification is an action (or the written representation of that action) of showing a mapping to be right or reasonable.", "pattern": "^semapv:(MappingReview|ManualMappingCuration|LogicalReasoning|LexicalMatching|CompositeMatching|UnspecifiedMatching|SemanticSimilarityThresholdMatching|LexicalSimilarityThresholdMatching|MappingChaining)$", "type": "string" }, "mapping_provider": { "description": "URL pointing to the source that provided the mapping, for example an ontology that already contains the mappings, or a database from which it was derived.", "type": "string" }, "mapping_source": { "description": "The mapping set this mapping was originally defined in. mapping_source is used for example when merging multiple mapping sets or deriving one mapping set from another.", "type": "string" }, "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.", "type": "string" }, "mapping_tool_version": { "description": "Version string that denotes the version of the mapping tool used.", "type": "string" }, "match_string": { "description": "String that is shared by subj/obj. It is recommended to indicate the fields for the match using the object and subject_match_field slots.", "items": { "type": "string" }, "type": "array" }, "object_category": { "description": "The conceptual category to which the subject belongs to. This can be a string denoting the category or a term from a controlled vocabulary. This slot is deliberately underspecified. Conceptual categories can range from those that are found in general upper ontologies such as BFO (e.g. process, temporal region, etc) to those that serve as upper ontologies in specific domains, such as COB or BioLink (e.g. gene, disease, chemical entity). The purpose of this optional field is documentation for human reviewers - when a category is known and documented clearly, the cost of interpreting and evaluating the mapping decreases.", "type": "string" }, "object_id": { "description": "The ID of the object of the mapping.", "type": "string" }, "object_label": { "description": "The label of object of the mapping", "type": "string" }, "object_match_field": { "description": "A list of properties (term annotations on the object) that was used for the match.", "items": { "type": "string" }, "type": "array" }, "object_preprocessing": { "description": "Method of preprocessing applied to the fields of the object. If different preprocessing steps were performed on different fields, it is recommended to store the match in separate rows.", "items": { "type": "string" }, "type": "array" }, "object_source": { "description": "URI of vocabulary or identifier source for the object.", "type": "string" }, "object_source_version": { "description": "Version IRI or version string of the source of the object term.", "type": "string" }, "object_type": { "$ref": "#/$defs/EntityTypeEnum", "description": "The type of entity that is being mapped." }, "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.", "type": "string" }, "predicate_id": { "description": "The ID of the predicate or relation that relates the subject and object of this match.", "type": "string" }, "predicate_label": { "description": "The label of the predicate/relation of the mapping", "type": "string" }, "predicate_modifier": { "$ref": "#/$defs/PredicateModifierEnum", "description": "A modifier for negating the predicate. See https://github.com/mapping-commons/sssom/issues/40 for discussion" }, "publication_date": { "description": "The date the mapping was published. This is different from the date the mapping was asserted.", "format": "date", "type": "string" }, "reviewer_id": { "description": "Identifies the persons or groups that reviewed and confirmed the mapping. Recommended to be a list of ORCIDs or otherwise identifying URIs.", "items": { "type": "string" }, "type": "array" }, "reviewer_label": { "description": "A string identifying the reviewer of this mapping. In the spirit of provenance, consider using reviewer_id instead.", "items": { "type": "string" }, "type": "array" }, "see_also": { "description": "A URL specific for the mapping instance. E.g. for kboom we have a per-mapping image that shows surrounding axioms that drive probability. Could also be a github issue URL that discussed a complicated alignment", "items": { "type": "string" }, "type": "array" }, "similarity_measure": { "description": "The measure used for computing a similarity score. This field is meant to be used in conjunction with the similarity_score field, to document, for example, the lexical or semantic match of a matching algorithm. To make processing this field as unambiguous as possible, we recommend using wikidata CURIEs, but the type of this field is deliberately unspecified.", "type": "string" }, "similarity_score": { "description": "A score between 0 and 1 to denote the similarity between two entities, where 1 denotes equivalence, and 0 denotes disjointness. The score is meant to be used in conjunction with the similarity_measure field, to document, for example, the lexical or semantic match of a matching algorithm.", "maximum": 1.0, "minimum": 0.0, "type": "number" }, "subject_category": { "description": "The conceptual category to which the subject belongs to. This can be a string denoting the category or a term from a controlled vocabulary. This slot is deliberately underspecified. Conceptual categories can range from those that are found in general upper ontologies such as BFO (e.g. process, temporal region, etc) to those that serve as upper ontologies in specific domains, such as COB or BioLink (e.g. gene, disease, chemical entity). The purpose of this optional field is documentation for human reviewers - when a category is known and documented clearly, the cost of interpreting and evaluating the mapping decreases.", "type": "string" }, "subject_id": { "description": "The ID of the subject of the mapping.", "type": "string" }, "subject_label": { "description": "The label of subject of the mapping", "type": "string" }, "subject_match_field": { "description": "A list of properties (term annotations on the subject) that was used for the match.", "items": { "type": "string" }, "type": "array" }, "subject_preprocessing": { "description": "Method of preprocessing applied to the fields of the subject. If different preprocessing steps were performed on different fields, it is recommended to store the match in separate rows.", "items": { "type": "string" }, "type": "array" }, "subject_source": { "description": "URI of vocabulary or identifier source for the subject.", "type": "string" }, "subject_source_version": { "description": "Version IRI or version string of the source of the subject term.", "type": "string" }, "subject_type": { "$ref": "#/$defs/EntityTypeEnum", "description": "The type of entity that is being mapped." } }, "required": [ "predicate_id", "mapping_justification" ], "title": "Mapping", "type": "object" }, "MappingCardinalityEnum": { "description": "", "enum": [ "1:1", "1:n", "n:1", "1:0", "0:1", "n:n" ], "title": "MappingCardinalityEnum", "type": "string" }, "MappingRegistry": { "additionalProperties": false, "description": "A registry for managing mapping sets. It holds a set of mapping set references, and can import other registries.", "properties": { "documentation": { "description": "A URL to the documentation of this mapping commons.", "type": "string" }, "homepage": { "description": "A URL to a homepage of this mapping commons.", "type": "string" }, "imports": { "description": "A list of registries that should be imported into this one.", "items": { "type": "string" }, "type": "array" }, "issue_tracker": { "description": "A URL location of the issue tracker for this entity.", "type": "string" }, "mapping_registry_description": { "description": "The description of a mapping registry.", "type": "string" }, "mapping_registry_id": { "description": "The unique identifier of a mapping registry.", "type": "string" }, "mapping_registry_title": { "description": "The title of a mapping registry.", "type": "string" }, "mapping_set_references": { "description": "A list of mapping set references.", "items": { "$ref": "#/$defs/MappingSetReference" }, "type": "array" } }, "required": [ "mapping_registry_id" ], "title": "MappingRegistry", "type": "object" }, "MappingSet": { "additionalProperties": false, "description": "Represents a set of mappings", "properties": { "comment": { "description": "Free text field containing either curator notes or text generated by tool providing additional informative information.", "type": "string" }, "creator_id": { "description": "Identifies the persons or groups responsible for the creation of the mapping. The creator is the agent that put the mapping in its published form, which may be different from the author, which is a person that was actively involved in the assertion of the mapping. Recommended to be a list of ORCIDs or otherwise identifying URIs.", "items": { "type": "string" }, "type": "array" }, "creator_label": { "description": "A string identifying the creator of this mapping. In the spirit of provenance, consider using creator_id instead.", "items": { "type": "string" }, "type": "array" }, "curie_map": { "additionalProperties": { "anyOf": [ { "$ref": "#/$defs/Prefix__identifier_optional" }, { "type": "string" }, { "type": "null" } ] }, "description": "A dictionary that contains prefixes as keys and their URI expansions as values.", "type": "object" }, "extension_definitions": { "description": "A list that defines the extension slots used in the mapping set.", "items": { "$ref": "#/$defs/ExtensionDefinition" }, "type": "array" }, "issue_tracker": { "description": "A URL location of the issue tracker for this entity.", "type": "string" }, "license": { "description": "A url to the license of the mapping. In absence of a license we assume no license.", "type": "string" }, "mapping_date": { "description": "The date the mapping was asserted. This is different from the date the mapping was published or compiled in a SSSOM file.", "format": "date", "type": "string" }, "mapping_provider": { "description": "URL pointing to the source that provided the mapping, for example an ontology that already contains the mappings, or a database from which it was derived.", "type": "string" }, "mapping_set_description": { "description": "A description of the mapping set.", "type": "string" }, "mapping_set_id": { "description": "A globally unique identifier for the mapping set (not each individual mapping). Should be IRI, ideally resolvable.", "type": "string" }, "mapping_set_source": { "description": "A mapping set or set of mapping set that was used to derive the mapping set.", "items": { "type": "string" }, "type": "array" }, "mapping_set_title": { "description": "The display name of a mapping set.", "type": "string" }, "mapping_set_version": { "description": "A version string for the mapping.", "type": "string" }, "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.", "type": "string" }, "mapping_tool_version": { "description": "Version string that denotes the version of the mapping tool used.", "type": "string" }, "mappings": { "description": "Contains a list of mapping objects", "items": { "$ref": "#/$defs/Mapping" }, "type": "array" }, "object_match_field": { "description": "A list of properties (term annotations on the object) that was used for the match.", "items": { "type": "string" }, "type": "array" }, "object_preprocessing": { "description": "Method of preprocessing applied to the fields of the object. If different preprocessing steps were performed on different fields, it is recommended to store the match in separate rows.", "items": { "type": "string" }, "type": "array" }, "object_source": { "description": "URI of vocabulary or identifier source for the object.", "type": "string" }, "object_source_version": { "description": "Version IRI or version string of the source of the object term.", "type": "string" }, "object_type": { "$ref": "#/$defs/EntityTypeEnum", "description": "The type of entity that is being mapped." }, "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.", "type": "string" }, "publication_date": { "description": "The date the mapping was published. This is different from the date the mapping was asserted.", "format": "date", "type": "string" }, "see_also": { "description": "A URL specific for the mapping instance. E.g. for kboom we have a per-mapping image that shows surrounding axioms that drive probability. Could also be a github issue URL that discussed a complicated alignment", "items": { "type": "string" }, "type": "array" }, "subject_match_field": { "description": "A list of properties (term annotations on the subject) that was used for the match.", "items": { "type": "string" }, "type": "array" }, "subject_preprocessing": { "description": "Method of preprocessing applied to the fields of the subject. If different preprocessing steps were performed on different fields, it is recommended to store the match in separate rows.", "items": { "type": "string" }, "type": "array" }, "subject_source": { "description": "URI of vocabulary or identifier source for the subject.", "type": "string" }, "subject_source_version": { "description": "Version IRI or version string of the source of the subject term.", "type": "string" }, "subject_type": { "$ref": "#/$defs/EntityTypeEnum", "description": "The type of entity that is being mapped." } }, "required": [ "mapping_set_id", "license" ], "title": "MappingSet", "type": "object" }, "MappingSetReference": { "additionalProperties": false, "description": "A reference to a mapping set. It allows to augment mapping set metadata from the perspective of the registry, for example, providing confidence, or a local filename or a grouping.", "properties": { "last_updated": { "description": "The date this reference was last updated.", "format": "date", "type": "string" }, "local_name": { "description": "The local name assigned to file that corresponds to the downloaded mapping set.", "type": "string" }, "mapping_set_group": { "description": "Set by the owners of the mapping registry. A way to group .", "type": "string" }, "mapping_set_id": { "description": "A globally unique identifier for the mapping set (not each individual mapping). Should be IRI, ideally resolvable.", "type": "string" }, "mirror_from": { "description": "A URL location from which to obtain a resource, such as a mapping set.", "type": "string" }, "registry_confidence": { "description": "This value is set by the registry that indexes the mapping set. It reflects the confidence the registry has in the correctness of the mappings in the mapping set.", "type": "number" } }, "required": [ "mapping_set_id" ], "title": "MappingSetReference", "type": "object" }, "NoTermFound": { "additionalProperties": false, "description": "sssom:NoTermFound can be used in place of a subject_id or object_id when the corresponding entity could not be found. It SHOULD be used in conjunction with a corresponding subject_source or object_source to signify where the term was not found.", "title": "NoTermFound", "type": "object" }, "PredicateModifierEnum": { "description": "", "enum": [ "Not" ], "title": "PredicateModifierEnum", "type": "string" }, "Prefix": { "additionalProperties": false, "description": "", "properties": { "prefix_name": { "type": "string" }, "prefix_url": { "type": "string" } }, "required": [ "prefix_name" ], "title": "Prefix", "type": "object" }, "Prefix__identifier_optional": { "additionalProperties": false, "description": "", "properties": { "prefix_name": { "type": "string" }, "prefix_url": { "type": "string" } }, "required": [], "title": "Prefix", "type": "object" }, "Propagatable": { "additionalProperties": false, "description": "Metamodel extension class to describe slots whose value can be propagated down from the MappingSet class to the Mapping class.", "properties": { "propagated": { "description": "Indicates whether a slot can be propagated from a mapping down to individual mappings.", "type": "boolean" } }, "title": "Propagatable", "type": "object" } }, "$id": "https://w3id.org/sssom/schema/", "$schema": "https://json-schema.org/draft/2019-09/schema", "additionalProperties": true, "metamodel_version": "1.7.0", "title": "sssom", "type": "object", "version": null }