From 957b0bb06008539f8dad98aa8eb9ad0fd127f80c Mon Sep 17 00:00:00 2001 From: vdancik Date: Thu, 19 Aug 2021 22:32:48 -0400 Subject: [PATCH] MolePro TRAPI 1.2 --- .../MolePro-TRAPI-1.2.yaml | 1051 +++++++++++++++++ 1 file changed, 1051 insertions(+) create mode 100644 molecular_data_provider/MolePro-TRAPI-1.2.yaml diff --git a/molecular_data_provider/MolePro-TRAPI-1.2.yaml b/molecular_data_provider/MolePro-TRAPI-1.2.yaml new file mode 100644 index 00000000..9d47bb5f --- /dev/null +++ b/molecular_data_provider/MolePro-TRAPI-1.2.yaml @@ -0,0 +1,1051 @@ +openapi: 3.0.1 +info: + description: Molecular Data Provider for NCATS Biomedical Translator + version: 1.2.0.0 + title: Molecular Data Provider for NCATS Biomedical Translator + contact: + email: translator@broadinstitute.org + name: Molecular Data Provider + x-role: responsible organization + license: + name: MIT License + url: https://github.com/broadinstitute/molecular-data-provider/blob/master/LICENSE + termsOfService: https://github.com/broadinstitute/molecular-data-provider/blob/master/terms_of_service.md + x-translator: + component: KP + team: + - Molecular Data Provider + biolink-version: 2.2.1 + externalDocs: + description: >- + The values for component and team are restricted according to this + external JSON schema. See schema and examples at url + url: https://github.com/NCATSTranslator/translator_extensions/blob/\ + production/x-translator/ + x-trapi: + version: 1.2.0 + asyncquery: false + operations: + - lookup + externalDocs: + description: >- + The values for version are restricted according to the regex in + this external JSON schema. See schema and examples at url + url: https://github.com/NCATSTranslator/translator_extensions/blob/\ + production/x-trapi/ +servers: + - url: https://translator.broadinstitute.org/molepro/trapi/v1.2 + description: TRAPI production service for MolePro +externalDocs: + description: >- + Documentation for the NCATS Biomedical Translator Reasoners web services + url: https://github.com/NCATSTranslator/ReasonerAPI +tags: + - name: meta_knowledge_graph + description: >- + Retreive the meta knowledge graph representation of this + TRAPI web service. + - name: query + description: Initiate a query and wait to receive the response + - name: asyncquery + description: Initiate a query with a callback to receive the response + - name: translator + description: Required for SmartAPI validation of x-translator + - name: trapi + description: Required for SmartAPI validation of x-trapi +paths: + /meta_knowledge_graph: + get: + tags: + - meta_knowledge_graph + summary: Meta knowledge graph representation of this TRAPI web service. + responses: + '200': + description: >- + Returns meta knowledge graph representation of this TRAPI web + service. + content: + application/json: + schema: + $ref: '#/components/schemas/MetaKnowledgeGraph' + /query: + post: + tags: + - query + summary: Initiate a query and wait to receive a Response + description: '' + requestBody: + description: Query information to be submitted + required: true + content: + application/json: + schema: + $ref: '#/components/schemas/Query' + responses: + '200': + description: >- + OK. There may or may not be results. Note that some of the provided + identifiers may not have been recognized. + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + '400': + description: >- + Bad request. The request is invalid according to this OpenAPI + schema OR a specific identifier is believed to be invalid somehow + (not just unrecognized). + content: + application/json: + schema: + type: string + '500': + description: >- + Internal server error. + content: + application/json: + schema: + type: string + '501': + description: >- + Not implemented. + content: + application/json: + schema: + type: string + /asyncquery: + post: + tags: + - asyncquery + summary: Initiate a query with a callback to receive the response + description: '' + requestBody: + description: Query information to be submitted + required: true + content: + application/json: + schema: + $ref: '#/components/schemas/AsyncQuery' + responses: + '200': + description: >- + The query is accepted for processing and the Response will be + sent to the callback url when complete. + content: + application/json: + schema: + type: string + '400': + description: >- + Bad request. The request is invalid according to this OpenAPI + schema OR a specific identifier is believed to be invalid somehow + (not just unrecognized). + content: + application/json: + schema: + type: string + '500': + description: >- + Internal server error. + content: + application/json: + schema: + type: string + '501': + description: >- + Not implemented. + content: + application/json: + schema: + type: string +components: + schemas: + Query: + description: >- + The Query class is used to package a user request for information. A + Query object consists of a required Message object with optional + additional properties. Additional properties are intended to convey + implementation-specific or query-independent parameters. For example, + an additional property specifying a log level could allow a user to + override the default log level in order to receive more fine-grained + log information when debugging an issue. + x-body-name: request_body + type: object + properties: + message: + $ref: '#/components/schemas/Message' + description: >- + The query Message is a serialization of the user request. Content + of the Message object depends on the intended TRAPI operation. For + example, the fill operation requires a non-empty query_graph field + as part of the Message, whereas other operations, e.g. overlay, + require non-empty results and knowledge_graph fields. + log_level: + description: The least critical level of logs to return + allOf: + - $ref: '#/components/schemas/LogLevel' + nullable: true + workflow: + description: List of workflow steps to be executed. + type: array + items: + type: object + properties: + id: + type: string + additionalProperties: true + example: + message: + query_graph: + edges: + e00: + subject: n00 + predicate: 'biolink:affects' + object: n01 + nodes: + n00: + id: 'PUBCHEM.COMPOUND:2244' + category: 'biolink:ChemicalSubstance' + n01: + category: 'biolink:Gene' + required: + - message + AsyncQuery: + description: >- + The AsyncQuery class is effectively the same as the Query class but + it requires a callback property. + x-body-name: request_body + type: object + properties: + callback: + type: string + format: uri + pattern: ^https?:// + description: >- + Upon completion, this server will send a POST request to the + callback URL with `Content-Type: application/json` header and + request body containing a JSON-encoded `Response` object. + The server MAY POST `Response` objects before work is fully + complete to provide interim results with a Response.status + value of 'Running'. If a POST operation to the callback URL + does not succeed, the server SHOULD retry the POST at least + once. + message: + $ref: '#/components/schemas/Message' + description: >- + The query Message is a serialization of the user request. Content + of the Message object depends on the intended TRAPI operation. For + example, the fill operation requires a non-empty query_graph field + as part of the Message, whereas other operations, e.g. overlay, + require non-empty results and knowledge_graph fields. + log_level: + description: The least critical level of logs to return + allOf: + - $ref: '#/components/schemas/LogLevel' + nullable: true + workflow: + description: List of workflow steps to be executed. + type: array + items: + type: object + properties: + id: + type: string + additionalProperties: true + required: + - callback + - message + Response: + type: object + description: >- + The Response object contains the main payload when a TRAPI query + endpoint interprets and responds to the submitted query successfully + (i.e., HTTP Status Code 200). The message property contains the + knowledge of the response (query graph, knowledge graph, and results). + The status, description, and logs properties provide additional details + about the response. + properties: + message: + description: >- + Contains the knowledge of the response (query graph, knowledge + graph, and results). + $ref: '#/components/schemas/Message' + status: + description: >- + One of a standardized set of short codes, + e.g. Success, QueryNotTraversable, KPsNotAvailable + type: string + example: Success + nullable: true + description: + description: A brief human-readable description of the outcome + type: string + example: Success. 42 results found. + nullable: true + logs: + description: >- + Log entries containing errors, warnings, debugging information, etc + type: array + items: + $ref: '#/components/schemas/LogEntry' + nullable: true + workflow: + description: List of workflow steps that were executed. + type: array + items: + type: object + properties: + id: + type: string + additionalProperties: true + required: + - message + Message: + description: >- + The message object holds the main content of a Query or a Response in + three properties: query_graph, results, and knowledge_graph. + The query_graph property contains the query configuration, the results + property contains any answers that are returned by the service, + and knowledge_graph property contains lists of edges and nodes in the + thought graph corresponding to this message. The content of these + properties is context-dependent to the encompassing object and + the TRAPI operation requested. + type: object + properties: + results: + description: >- + List of all returned Result objects for the query posed. + The list SHOULD NOT be assumed to be ordered. The 'score' property, + if present, MAY be used to infer result rankings. + type: array + items: + $ref: '#/components/schemas/Result' + nullable: true + query_graph: + description: >- + QueryGraph object that contains a serialization of a query in the + form of a graph + allOf: + - $ref: '#/components/schemas/QueryGraph' + nullable: true + knowledge_graph: + description: >- + KnowledgeGraph object that contains lists of nodes and edges + in the thought graph corresponding to the message + allOf: + - $ref: '#/components/schemas/KnowledgeGraph' + nullable: true + additionalProperties: false + LogEntry: + description: >- + The LogEntry object contains information useful for tracing + and debugging across Translator components. Although an + individual component (for example, an ARA or KP) may have its + own logging and debugging infrastructure, this internal + information is not, in general, available to other components. + In addition to a timestamp and logging level, LogEntry + includes a string intended to be read by a human, along with + one of a standardized set of codes describing the condition of + the component sending the message. + type: object + properties: + timestamp: + type: string + format: date-time + description: Timestamp in ISO 8601 format + example: '2020-09-03T18:13:49+00:00' + nullable: true + level: + allOf: + - $ref: '#/components/schemas/LogLevel' + nullable: true + code: + type: string + description: >- + One of a standardized set of short codes + e.g. QueryNotTraversable, KPNotAvailable, KPResponseMalformed + nullable: true + message: + type: string + description: A human-readable log message + nullable: true + additionalProperties: true + LogLevel: + type: string + description: Logging level + enum: + - ERROR + - WARNING + - INFO + - DEBUG + Result: + type: object + description: >- + A Result object specifies the nodes and edges in the knowledge graph + that satisfy the structure or conditions of a user-submitted query + graph. It must contain a NodeBindings object (list of query graph node + to knowledge graph node mappings) and an EdgeBindings object (list of + query graph edge to knowledge graph edge mappings). + properties: + node_bindings: + type: object + description: >- + The dictionary of Input Query Graph to Result Knowledge Graph node + bindings where the dictionary keys are the key identifiers of the + Query Graph nodes and the associated values of those keys are + instances of NodeBinding schema type (see below). This value is an + array of NodeBindings since a given query node may have multiple + knowledge graph Node bindings in the result. + additionalProperties: + type: array + items: + $ref: '#/components/schemas/NodeBinding' + edge_bindings: + type: object + description: >- + The dictionary of Input Query Graph to Result Knowledge Graph edge + bindings where the dictionary keys are the key identifiers of the + Query Graph edges and the associated values of those keys are + instances of EdgeBinding schema type (see below). This value is an + array of EdgeBindings since a given query edge may resolve to + multiple knowledge graph edges in the result. + additionalProperties: + type: array + items: + $ref: '#/components/schemas/EdgeBinding' + score: + type: number + format: float + example: 163.233 + description: >- + A numerical score associated with this result indicating the + relevance or confidence of this result relative to others in the + returned set. Higher MUST be better. + additionalProperties: true + required: + - node_bindings + - edge_bindings + NodeBinding: + type: object + properties: + id: + $ref: '#/components/schemas/CURIE' + description: >- + An instance of NodeBinding is a single KnowledgeGraph Node mapping, + identified by the corresponding 'id' object key identifier of the + Node within the Knowledge Graph. Instances of NodeBinding may + include extra annotation (such annotation is not yet fully + standardized). + additionalProperties: true + required: + - id + EdgeBinding: + type: object + description: >- + A instance of EdgeBinding is a single KnowledgeGraph Edge mapping, + identified by the corresponding 'id' object key identifier of the + Edge within the Knowledge Graph. Instances of EdgeBinding may include + extra annotation (such annotation is not yet fully standardized). + properties: + id: + type: string + description: The key identifier of a specific KnowledgeGraph Edge. + attributes: + type: array + description: >- + A list of attributes providing further information about the + edge binding. This is not intended for capturing edge attributes + and should only be used for properties that vary from result to + result. + items: + $ref: '#/components/schemas/Attribute' + nullable: true + additionalProperties: true + required: + - id + KnowledgeGraph: + type: object + description: >- + The knowledge graph associated with a set of results. The instances + of Node and Edge defining this graph represent instances of + biolink:NamedThing (concept nodes) and biolink:Association + (relationship edges) representing (Attribute) annotated knowledge + returned from the knowledge sources and inference agents wrapped by + the given TRAPI implementation. + properties: + nodes: + type: object + description: >- + Dictionary of Node instances used in the KnowledgeGraph, + referenced elsewhere in the TRAPI output by the dictionary key. + additionalProperties: + $ref: '#/components/schemas/Node' + edges: + type: object + description: >- + Dictionary of Edge instances used in the KnowledgeGraph, + referenced elsewhere in the TRAPI output by the dictionary key. + additionalProperties: + $ref: '#/components/schemas/Edge' + additionalProperties: true + required: + - nodes + - edges + QueryGraph: + type: object + description: >- + A graph representing a biomedical question. It serves as a template for + each result (answer), where each bound knowledge graph node/edge is + expected to obey the constraints of the associated query graph element. + properties: + nodes: + type: object + description: >- + The node specifications. The keys of this map are unique node + identifiers and the corresponding values include the constraints + on bound nodes. + additionalProperties: + $ref: '#/components/schemas/QNode' + edges: + type: object + description: >- + The edge specifications. The keys of this map are unique edge + identifiers and the corresponding values include the constraints + on bound edges, in addition to specifying the subject and object + QNodes. + additionalProperties: + $ref: '#/components/schemas/QEdge' + additionalProperties: true + required: + - nodes + - edges + QNode: + type: object + description: A node in the QueryGraph used to represent an entity in a + query. If a CURIE is not specified, any nodes matching the category + of the QNode will be returned in the Results. + properties: + ids: + type: array + items: + $ref: '#/components/schemas/CURIE' + minItems: 1 + example: [OMIM:603903] + description: CURIE identifier for this node + nullable: true + categories: + type: array + items: + $ref: '#/components/schemas/BiolinkEntity' + minItems: 1 + nullable: true + is_set: + type: boolean + description: >- + Boolean that if set to true, indicates that this QNode MAY have + multiple KnowledgeGraph Nodes bound to it within each Result. + The nodes in a set should be considered as a set of independent + nodes, rather than a set of dependent nodes, i.e., the answer + would still be valid if the nodes in the set were instead returned + individually. Multiple QNodes may have is_set=True. If a QNode + (n1) with is_set=True is connected to a QNode (n2) with + is_set=False, each n1 must be connected to n2. If a QNode (n1) + with is_set=True is connected to a QNode (n2) with is_set=True, + each n1 must be connected to at least one n2. + default: false + constraints: + type: array + description: >- + A list of contraints applied to a query node. + If there are multiple items, they must all be true (equivalent + to AND) + items: + $ref: '#/components/schemas/QueryConstraint' + nullable: true + additionalProperties: true + QEdge: + type: object + description: >- + An edge in the QueryGraph used as an filter pattern specification in a + query. If optional predicate or relation properties are not specified, + they are assumed to be wildcard matches to the target knowledge space. + If specified, the ontological inheritance hierarchy associated with + the terms provided is assumed, such that edge bindings returned may be + an exact match to the given QEdge predicate or relation term ('class'), + or to a term which is a subclass of the QEdge specified term. + properties: + predicates: + type: array + items: + $ref: '#/components/schemas/BiolinkPredicate' + minItems: 1 + nullable: true + subject: + type: string + example: https://omim.org/entry/603903 + description: >- + Corresponds to the map key identifier of the + subject concept node anchoring the query filter + pattern for the query relationship edge. + object: + type: string + example: https://www.uniprot.org/uniprot/P00738 + description: >- + Corresponds to the map key identifier of the + object concept node anchoring the query filter + pattern for the query relationship edge. + constraints: + type: array + description: >- + A list of contraints applied to a query edge. + If there are multiple items, they must all be true (equivalent + to AND) + items: + $ref: '#/components/schemas/QueryConstraint' + nullable: true + additionalProperties: true + required: + - subject + - object + Node: + type: object + description: >- + A node in the KnowledgeGraph which represents some biomedical + concept. Nodes are identified by the keys in the KnowledgeGraph + Node mapping. + properties: + name: + type: string + example: Haptoglobin + description: Formal name of the entity + nullable: true + categories: + type: array + items: + $ref: '#/components/schemas/BiolinkEntity' + nullable: true + attributes: + type: array + description: A list of attributes describing the node + items: + $ref: '#/components/schemas/Attribute' + nullable: true + additionalProperties: false + Attribute: + type: object + description: >- + Generic attribute for a node or an edge that expands the key-value + pair concept by including fields for additional metadata. These fields + can be used to describe the source of the statement made in a key-value + pair of the attribute object, or describe the attribute's value itself + including its semantic type, or a url providing additional information + about it. An attribute may be further qualified with a SubAttribute + (for example to provide confidence intervals on a value). + properties: + attribute_type_id: + $ref: '#/components/schemas/CURIE' + description: >- + The 'key' of the attribute object, holding a CURIE of an ontology + property defining the attribute (preferably the CURIE of a + Biolink association slot). This property captures the relationship + asserted to hold between the value of the attribute, and the node + or edge from which it hangs. For example, that a value of + '0.000153' represents a p-value supporting an edge, or that + a value of 'ChEMBL' represents the original source of the knowledge + expressed in the edge. + example: Biolink:has_p-value_evidence, Biolink:has_original_source + original_attribute_name: + type: string + description: >- + The term used by the original source of an attribute to describe + the meaning or significance of the value it captures. This may be + a column name in a source tsv file, or a key in a source json + document for the field in the data that held the attribute's + value. Capturing this information where possible lets us preserve + what the original source said. Note that the data type is string' + but the contents of the field could also be a CURIE of a third + party ontology term. + example: p-value + nullable: true + value: + description: >- + Value of the attribute. May be any data type, including a list. + example: 0.000153 + value_type_id: + allOf: + - $ref: '#/components/schemas/CURIE' + description: >- + CURIE describing the semantic type of an attribute's value. Use + a Biolink class if possible, otherwise a term from an external + ontology. If a suitable CURIE/identifier does not exist, enter a + descriptive phrase here and submit the new type for consideration + by the appropriate authority. + example: EDAM:data_1187 + nullable: true + attribute_source: + type: string + description: >- + The source of the core assertion made by the key-value pair of an + attribute object. Use a CURIE or namespace designator for this + resource where possible. + example: UniProtKB + nullable: true + value_url: + type: string + description: >- + Human-consumable URL linking to a web document that provides + additional information about an attribute's value (not the node + or the edge fom which it hangs). + example: https://pubmed.ncbi.nlm.nih.gov/32529952 + nullable: true + description: + type: string + description: >- + Human-readable description for the attribute and its value. + example: Assertion Authored By Dr. Trans L. Ator + nullable: true + attributes: + type: array + description: >- + A list of attributes providing further information about the + parent attribute (for example to provide provenance + information about the parent attribute). + items: + $ref: '#/components/schemas/SubAttribute' + nullable: true + required: + - attribute_type_id + - value + additionalProperties: false + SubAttribute: + type: object + description: >- + Second-level attribute that can be used to qualify information + contained in a primary Attribute attached to a Node or Edge. + properties: + attribute_type_id: + $ref: '#/components/schemas/CURIE' + description: >- + The 'key' of the attribute object, holding a CURIE of an ontology + property defining the attribute (preferably the CURIE of a + Biolink association slot). This property captures the relationship + asserted to hold between the value of the attribute, and the node + or edge from which it hangs. For example, that a value of + '0.000153' represents a p-value supporting an edge, or that + a value of 'ChEMBL' represents the original source of the knowledge + expressed in the edge. + example: Biolink:has_p-value_evidence, Biolink:has_original_source + original_attribute_name: + type: string + description: >- + The term used by the original source of an attribute to describe + the meaning or significance of the value it captures. This may be + a column name in a source tsv file, or a key in a source json + document for the field in the data that held the attribute's + value. Capturing this information where possible lets us preserve + what the original source said. Note that the data type is string' + but the contents of the field could also be a CURIE of a third + party ontology term. + example: p-value + nullable: true + value: + description: >- + Value of the attribute. May be any data type, including a list. + example: 0.000153 + value_type_id: + allOf: + - $ref: '#/components/schemas/CURIE' + description: >- + CURIE describing the semantic type of an attribute's value. Use + a Biolink class if possible, otherwise a term from an external + ontology. If a suitable CURIE/identifier does not exist, enter a + descriptive phrase here and submit the new type for consideration + by the appropriate authority. + example: EDAM:data_1187 + nullable: true + attribute_source: + type: string + description: >- + The source of the core assertion made by the key-value pair of an + attribute object. Use a CURIE or namespace designator for this + resource where possible. + example: UniProtKB + nullable: true + value_url: + type: string + description: >- + Human-consumable URL linking to a web document that provides + additional information about an attribute's value (not the node + or the edge fom which it hangs). + example: https://pubmed.ncbi.nlm.nih.gov/32529952 + nullable: true + description: + type: string + description: >- + Human-readable description for the attribute and its value. + example: Assertion Authored By Dr. Trans L. Ator + nullable: true + required: + - attribute_type_id + - value + additionalProperties: false + Edge: + type: object + description: >- + A specification of the semantic relationship linking two concepts + that are expressed as nodes in the knowledge "thought" graph + resulting from a query upon the underlying knowledge source. + properties: + predicate: + allOf: + - $ref: '#/components/schemas/BiolinkPredicate' + nullable: true + subject: + $ref: '#/components/schemas/CURIE' + example: OMIM:603903 + description: >- + Corresponds to the map key CURIE of the + subject concept node of this relationship edge. + object: + $ref: '#/components/schemas/CURIE' + example: UniProtKB:P00738 + description: >- + Corresponds to the map key CURIE of the + object concept node of this relationship edge. + attributes: + type: array + description: A list of additional attributes for this edge + items: + $ref: '#/components/schemas/Attribute' + nullable: true + additionalProperties: false + required: + - subject + - object + BiolinkEntity: + description: >- + Compact URI (CURIE) for a Biolink class, biolink:NamedThing + or a child thereof. The CURIE must use the prefix 'biolink:' + followed by the PascalCase class name. + type: string + pattern: ^biolink:[A-Z][a-zA-Z]*$ + externalDocs: + description: Biolink model entities + url: https://biolink.github.io/biolink-model/docs/NamedThing.html + example: biolink:PhenotypicFeature + BiolinkPredicate: + description: >- + CURIE for a Biolink 'predicate' slot, taken from the Biolink slot + ('is_a') hierarchy rooted in biolink:related_to (snake_case). This + predicate defines the Biolink relationship between the subject and + object nodes of a biolink:Association defining a knowledge graph edge. + type: string + pattern: ^biolink:[a-z][a-z_]*$ + externalDocs: + description: Biolink model predicates + url: https://biolink.github.io/biolink-model/docs/related_to.html + example: biolink:interacts_with + CURIE: + type: string + description: >- + A Compact URI, consisting of a prefix and a reference separated + by a colon, such as UniProtKB:P00738. Via an external context + definition, the CURIE prefix and colon may be replaced by a URI + prefix, such as http://identifiers.org/uniprot/, to form a full + URI. + externalDocs: + url: https://www.w3.org/TR/2010/NOTE-curie-20101216/ + MetaKnowledgeGraph: + type: object + description: >- + Knowledge-map representation of this TRAPI web service. The meta + knowledge graph is composed of the union of most specific categories + and predicates for each node and edge. + properties: + nodes: + type: object + description: >- + Collection of the most specific node categories provided by + this TRAPI web service, indexed by Biolink class CURIEs. + A node category is only exposed here if there is + node for which that is the most specific category available. + additionalProperties: + $ref: '#/components/schemas/MetaNode' + edges: + type: array + description: >- + List of the most specific edges/predicates provided by this TRAPI + web service. A predicate is only exposed here if there is an edge + for which the predicate is the most specific available. + items: + $ref: '#/components/schemas/MetaEdge' + minItems: 1 + MetaNode: + type: object + description: >- + Description of a node category provided by this TRAPI web service. + properties: + id_prefixes: + type: array + description: >- + List of CURIE prefixes for the node category that this TRAPI web + service understands and accepts on the input. + items: + type: string + minItems: 1 + example: [CHEMBL.COMPOUND, INCHIKEY] + attributes: + type: array + description: >- + Node attributes provided by this TRAPI web service. + items: + $ref: '#/components/schemas/MetaAttribute' + required: + - id_prefixes + additionalProperties: false + MetaEdge: + type: object + description: >- + Edge in a meta knowledge map describing relationship between a subject + Biolink class and an object Biolink class. + properties: + subject: + $ref: '#/components/schemas/BiolinkEntity' + description: >- + Subject node category of this relationship edge. + example: biolink:ChemicalSubstance + predicate: + $ref: '#/components/schemas/BiolinkPredicate' + description: >- + Biolink relationship between the subject and object categories. + example: biolink:affects + object: + $ref: '#/components/schemas/BiolinkEntity' + description: >- + Object node category of this relationship edge. + example: biolink:Protein + attributes: + type: array + description: >- + Edge attributes provided by this TRAPI web service. + items: + $ref: '#/components/schemas/MetaAttribute' + required: + - subject + - predicate + - object + additionalProperties: false + MetaAttribute: + type: object + properties: + attribute_type_id: + $ref: '#/components/schemas/CURIE' + description: >- + Type of an attribute provided by this TRAPI web service + (preferably the CURIE of a Biolink association slot) + example: biolink:p_value + attribute_source: + type: string + description: >- + Source of an attribute provided by this TRAPI web service. + example: infores:chembl + original_attribute_names: + type: array + items: + type: string + description: >- + Names of an the attribute as provided by the source. + constraint_use: + type: boolean + description: >- + Indicates whether this attribute can be used as a query + constraint. + default: false + constraint_name: + type: string + description: >- + Human-readable name or label for the constraint concept. + Required whenever constraint_use is true. + example: p-value + required: + - attribute_type_id + QueryConstraint: + type: object + description: >- + Generic query constraint for a query node or query edge + properties: + id: + allOf: + - $ref: '#/components/schemas/CURIE' + description: >- + CURIE of the concept being constrained. For properties + defined by the Biolink model this SHOULD be a biolink CURIE. + otherwise, if possible, from the EDAM ontology. If a suitable + CURIE does not exist, enter a descriptive phrase here and + submit the new type for consideration by the appropriate + authority. + example: EDAM:data_0844 + nullable: false + name: + type: string + description: >- + Human-readable name or label for the constraint concept. + If appropriate, it SHOULD be the term name of the CURIE used + as the 'id'. This is redundant but required for human + readability. + example: molecular mass + nullable: false + not: + type: boolean + default: false + operator: + type: string + description: >- + Relationship between the database value and the constraint value + for the specified id. The operators ==, >, and < mean + is exactly equal to, is greater than, and is less than, + respectively. The 'matches' operator indicates that the value + is a regular expression to be evaluated. If value is a list type, + then at least one evaluation must be true (equivalent to OR). + This means that the == operator with a list acts like a SQL 'IN' + clause. The 'not' property negates the operator such that not + and == means 'not equal to' (or 'not in' for a list), and not > + means <=, and not < means >=, and not matches means does not + match. The '==' operator SHOULD NOT be used in a manner that + describes an "is a" subclass relationship for the parent QNode. + enum: + - == + - '>' + - < + - matches + value: + example: 57.0 + description: >- + Value of the attribute. May be any data type, including a list. + If the value is a list and there are multiple items, at least one + comparison must be true (equivalent to OR). If 'value' is of data + type 'object', the keys of the object MAY be treated as a list. + A 'list' data type paired with the '>' or '<' operators will + encode extraneous comparisons, but this is permitted as it is in + SQL and other languages. + unit_id: + example: UO:0000222 + description: >- + CURIE of the units of the value or list of values in the 'value' + property. The Units of Measurement Ontology (UO) should be used + if possible. The unit_id MUST be provided for (lists of) + numerical values that correspond to a quantity that has units. + unit_name: + example: kilodalton + description: >- + Term name that is associated with the CURIE of the units + of the value or list of values in the 'value' + property. The Units of Measurement Ontology (UO) SHOULD be used + if possible. This property SHOULD be provided if a unit_id is + provided. This is redundant but recommended for human readability. + required: + - name + - id + - operator + - value + additionalProperties: false