Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
52 changes: 27 additions & 25 deletions ChangeLog.md
Original file line number Diff line number Diff line change
@@ -1,65 +1,67 @@
# Change Log 1.6.0-beta (2025-06-06) -> 2.0.0-dev (2026-03-25)

### 1. QEdge Constraints Refactor (see [migration guide entry](https://github.com/NCATSTranslator/ReasonerAPI/blob/2.0/ImplementationGuidance/MigrationGuides/MigrationAndImplementationGuide2-0.md#1-qedge-constraints-refactor))
### 1. QEdge Constraints Refactor (see [migration guide entry](https://github.com/NCATSTranslator/ReasonerAPI/blob/2.0/ImplementationGuidance/MigrationGuides/MigrationAndImplementationGuide2-0.md#1-qedge-constraints-refactor), [reference doc entry](https://github.com/NCATSTranslator/ReasonerAPI/blob/2.0/docs/reference.md#qedge-))
- `QEdge.attribute_constraints` and `QEdge.qualifier_constraints`have been removed and replaced with `QEdge.constraints`, which is an object that can contain constraints for `knowledge_level`, `agent_type`, `sources`, `attributes`, and `qualifiers`
- The new `sources` constraint has ALLOW and DENY constructs with an optional `primary_only` flag

### 2. Add Query.parameters and Response.parameters to contain existing log_level and bypass_cache parameters and add timeout query parameter (see [migration guide entry](https://github.com/NCATSTranslator/ReasonerAPI/blob/2.0/ImplementationGuidance/MigrationGuides/MigrationAndImplementationGuide2-0.md#2-new-queryresponse-parameters))
### 2. Add Query.parameters and Response.parameters to contain existing log_level and bypass_cache parameters and add timeout query parameter (see [migration guide entry](https://github.com/NCATSTranslator/ReasonerAPI/blob/2.0/ImplementationGuidance/MigrationGuides/MigrationAndImplementationGuide2-0.md#2-new-queryresponse-parameters), [reference doc entry](https://github.com/NCATSTranslator/ReasonerAPI/blob/2.0/docs/reference.md#queryparameters-))
- Move `Query.log_level` to `Query.parameters.log_level`
- Move `Query.bypass_cache` to `Query.parameters.bypass_cache`
- Add `Query.parameters.timeout`
- Add `Response.parameters` that conveys the same parameters as `Query.parameters`
- Add HTTP 409 code

### 3. Binding Structure Changes (NodeBinding/EdgeBinding/PathBinding) (see [migration guide entry](https://github.com/NCATSTranslator/ReasonerAPI/blob/2.0/ImplementationGuidance/MigrationGuides/MigrationAndImplementationGuide2-0.md#3-binding-structure-changes-nodeedgepath))
### 3. Binding Structure Changes (NodeBinding/EdgeBinding/PathBinding) (see [migration guide entry](https://github.com/NCATSTranslator/ReasonerAPI/blob/2.0/ImplementationGuidance/MigrationGuides/MigrationAndImplementationGuide2-0.md#3-binding-structure-changes-nodeedgepath), [PR](https://github.com/NCATSTranslator/ReasonerAPI/pull/546))
- `<node/edge/path>_bindings` are now minProperties: 1 (i.e. when these fields are present, they MUST contain data)
- `id` properties renamed to `ids` and is now a list
- `ids` arrays are minItems: 1 (this property is required)
- `attributes` property completely removed
- `query_id` was removed from NodeBinding (obsolete with the current subclassing behavior)
- Each binding is now an object containing only `ids` (which is a list), instead of a list of objects each with `id` and `attributes`

### 4. KL/AT turned into top-level Edge properties, now required (see [migration guide entry](https://github.com/NCATSTranslator/ReasonerAPI/blob/2.0/ImplementationGuidance/MigrationGuides/MigrationAndImplementationGuide2-0.md#4-klat-turned-into-top-level-edge-properties-now-required))
### 4. KL/AT turned into top-level Edge properties, now required (see [migration guide entry](https://github.com/NCATSTranslator/ReasonerAPI/blob/2.0/ImplementationGuidance/MigrationGuides/MigrationAndImplementationGuide2-0.md#4-klat-turned-into-top-level-edge-properties-now-required), [PR](https://github.com/NCATSTranslator/ReasonerAPI/pull/536/changes/e21490eca92c7f1bf2df5baa6d3711da30d197f4..9d402d20e3fdee360976857fbdbd57c7f09d1a38))
- `Edge.knowledge_level` and `Edge.agent_type` are now required `Edge` properties instead of being located within `attributes`

### 5. Add COLLATE option to QNode.set_interpretation enum (see [migration guide entry](https://github.com/NCATSTranslator/ReasonerAPI/blob/2.0/ImplementationGuidance/MigrationGuides/MigrationAndImplementationGuide2-0.md#5-add-collate-option-to-qnodeset_interpretation))
### 5. Add COLLATE option to QNode.set_interpretation enum (see [migration guide entry](https://github.com/NCATSTranslator/ReasonerAPI/blob/2.0/ImplementationGuidance/MigrationGuides/MigrationAndImplementationGuide2-0.md#5-add-collate-option-to-qnodeset_interpretation), [PR](https://github.com/NCATSTranslator/ReasonerAPI/pull/543/changes))

### 6. null is no longer a valid value in queries and responses (see [migration guide entry](https://github.com/NCATSTranslator/ReasonerAPI/blob/2.0/ImplementationGuidance/MigrationGuides/MigrationAndImplementationGuide2-0.md#6-null-is-no-longer-a-valid-value-in-queries-and-responses))
### 6. null is no longer a valid value in queries and responses (see [migration guide entry](https://github.com/NCATSTranslator/ReasonerAPI/blob/2.0/ImplementationGuidance/MigrationGuides/MigrationAndImplementationGuide2-0.md#6-null-is-no-longer-a-valid-value-in-queries-and-responses), [issue for context](https://github.com/NCATSTranslator/ReasonerAPI/issues/527))
- Remove `nullable: true/false` designations for all properties. Properties with no data must now be *absent* from TRAPI JSON or an empty array/object if the schema allows, rather than allowed to be present but with a null value. Some field descriptions explicitly state that the empty array/object MUST be used in certain circumstances.

### 7. Many optional properties set to <minItems/minProperties>: 1
### 7. Many properties set to <minItems/minProperties>: 1
In the following properties, empty lists are no longer permitted to say "no data here". "No data" is now expressed with an absent property:
- `QueryGraph.nodes`
- [`QueryGraph.nodes`](https://github.com/NCATSTranslator/ReasonerAPI/blob/2.0/docs/reference.md#querygraph-): [PR](https://github.com/NCATSTranslator/ReasonerAPI/pull/548)
- `QueryGraph.edges`
- `Response.logs`
- `Message.auxiliary_graphs`
- `Result.analyses`
- `Analysis.support_graphs`
- `QNode.member_ids`
- [`Response.logs`](https://github.com/NCATSTranslator/ReasonerAPI/blob/2.0/docs/reference.md#response-)
- [`Message.auxiliary_graphs`](https://github.com/NCATSTranslator/ReasonerAPI/blob/2.0/docs/reference.md#message-)
- [`Result.analyses`](https://github.com/NCATSTranslator/ReasonerAPI/blob/2.0/docs/reference.md#result-)
- [`Analysis.support_graphs`](https://github.com/NCATSTranslator/ReasonerAPI/blob/2.0/docs/reference.md#analysis-)
- [`QNode.member_ids`](https://github.com/NCATSTranslator/ReasonerAPI/blob/2.0/docs/reference.md#qnode-)
- `QNode.constraints`
- `Edge.qualifiers`
- `MetaKnowledgeGraph.nodes`
- `MetaEdge.qualifiers`
- `MetaQualifier.applicable_values`
- `RetrievalSource.upstream_resource_ids`
- [`Edge.qualifiers`](https://github.com/NCATSTranslator/ReasonerAPI/blob/2.0/docs/reference.md#edge-)
- [`MetaKnowledgeGraph.nodes`](https://github.com/NCATSTranslator/ReasonerAPI/blob/2.0/docs/reference.md#metaknowledgegraph-)
- [`MetaEdge.qualifiers`](https://github.com/NCATSTranslator/ReasonerAPI/blob/2.0/docs/reference.md#metaedge-)
- [`MetaQualifier.applicable_values`](https://github.com/NCATSTranslator/ReasonerAPI/blob/2.0/docs/reference.md#metaqualifier-)
- [`RetrievalSource.upstream_resource_ids`](https://github.com/NCATSTranslator/ReasonerAPI/blob/2.0/docs/reference.md#retrievalsource-)
- `RetrievalSource.source_record_urls`

### 8. Removed AuxiliaryGraph.attributes property
### 8. Removed AuxiliaryGraph.attributes property ([reference doc entry](https://github.com/NCATSTranslator/ReasonerAPI/blob/2.0/docs/reference.md#auxiliarygraph-))
- It was previously required, but never used and its empty arrays bloated responses. Additional undefined properties are still allowed in AuxiliaryGraph objects.

### 9. The following properties changed to not-required
- `Nodes.attributes` (to reduce bloat)
- `QueryGraph.edges` and `QueryGraph.paths` (to accommodate queries with only nodes) (e.g. "what are the attributes of CURIE:123?")
- `KnowledgeGraph.edges` (to accommodate queries with only nodes)
- `Result.analyses` (to accommodate queries with only nodes)
- [`Nodes.attributes`](https://github.com/NCATSTranslator/ReasonerAPI/blob/2.0/docs/reference.md#node-) (to reduce bloat)
- [`QueryGraph.edges`](https://github.com/NCATSTranslator/ReasonerAPI/blob/2.0/docs/reference.md#querygraph-) and `QueryGraph.paths` (to accommodate queries with only nodes) (e.g. "what are the attributes of CURIE:123?")
- [`KnowledgeGraph.edges`](https://github.com/NCATSTranslator/ReasonerAPI/blob/2.0/docs/reference.md#knowledgegraph-) (to accommodate queries with only nodes)
- [`Result.analyses`](https://github.com/NCATSTranslator/ReasonerAPI/blob/2.0/docs/reference.md#result-) (to accommodate queries with only nodes)

### 10. Analysis is technically allowed to have both edge and path bindings (experimental use)
### 10. Analysis is technically allowed to have both edge and path bindings (experimental use, [PR](https://github.com/NCATSTranslator/ReasonerAPI/pull/547))

### 11. YAML specification document migrated from OpenAPI 3.0.1 to OpenAPI 3.1.2
### 11. YAML specification document migrated from OpenAPI 3.0.1 to OpenAPI 3.1.2 ([PR](https://github.com/NCATSTranslator/ReasonerAPI/pull/533))
- All `example` attributes become `examples` in OpenAPI 3.1.2

### 12. BaseQueryGraph and BaseAnalysis base classes removed in favor of single QueryGraph and Analysis classes that support both pathfinder and regular queries

[PR](https://github.com/NCATSTranslator/ReasonerAPI/pull/544), but look at 2.0 yaml for up-to-date versions of those sub-schemas.

=============


Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -434,9 +434,9 @@ Examples:
* `Message.results` MUST NOT be set to `null` when there is no data. Its description states when it MUST be omitted (when not expected, like a query) VS an empty array (when it is expected and there's no data, like a response).


### 7. Many optional properties set to `<minItems/minProperties>: 1`
### 7. Many properties set to `<minItems/minProperties>: 1`

For many optional array and object properties, `minItems`/`minProperties` was set to 1. This was to reduce bloat (only include the field if there's data). See the Changelog for the full list of changed properties.
For many array and object properties, `minItems`/`minProperties` was set to 1. This was to reduce bloat (only include the field if there's data). See the Changelog for the full list of changed properties.


### 8. `AuxiliaryGraph.attributes` was removed
Expand Down
Loading