-
Notifications
You must be signed in to change notification settings - Fork 4
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Reporting heterogeneous Biolink Model versions across x-maturity environments. #21
Comments
The OpenAPI server object supports additional variables that could be used to specify the Biolink version of that |
Here, I will briefly brainstorm on this issues and options that come to mind for its resolution.
If adopted, an instance of the latter 4b) specification would look like something like the following: info:
x-translator:
biolink-version:
default: "2.4.8"
staging: "3.1.0"
development: "3.1.1"
info:
x-translator:
infores: "infores:biolink-api"
component: KP
team:
- "Service Provider"
x-biolink-version:
default: "2.4.8"
staging: "3.1.0"
development: "3.1.1"
x-trapi:
etc... |
It seems infeasible to me to have everyone on the same Biolink release. First, thus far we have only stipulated second digits (3.0, 3.1) whereas Biolink had 3 digits that different agents have implemented, and then also the goals seem to change pretty frequently. We deployed 3.0.3 only to find out later that at some point we decided 3.1 but didn't update the tracking sheet. Getting everyone on the same version with 99% reliability will be a big lift and will require a lot more planning and communication to make it happen. |
Yeah I agree with @edeutsch . @RichardBruskiewich what actual problem is it that we're trying to solve? |
Note that staging = ITRB CI (testing is ITRB test) |
@edeutsch @cbizon I have to laugh a little bit here, but the problem is exactly what @edeutsch says, that "...it seems infeasible to me to have everyone on the same Biolink release...". I just realized that my wording of option 1 above was a bit confusing, though: I am not advocating that all KP and ARA's only implement one Biolink Model version at all cost. Rather, I'm just asking how to consistently report what release they are implementing, across all the endpoints they expose (I tried to clarify option 1 text accordingly). That is, I'm actually stating that we face a more stringent challenge, that within a given KP or ARA, it seems to be infeasible to expect all In terms of SRI Testing of KP and ARA components for compliance to the Biolink Model, it is important to know which Biolink Model release is being tested, to giving non-spurious validation results; otherwise, the testing with test data that assumes other releases of the Biolink model may report errors which are not relevant. Maybe this issue is based on a false assumption for testing: that SRI Testing needs to know the Biolink Model release of the target KP or ARA. At the moment, if the Biolink Model version is not stated as a test run parameter, then code assumes that the Translator SmartAPI Registry info.x-translator.biolink-version property value is the testing default. Perhaps the target Biolink Model release for testing ought to just be a mandatory (CLI) test run specified parameter, such that the actual Biolink Model version implemented by the target KP or ARA, or reported by the info.x-translator.biolink-version is simply ignored; rather, we simply decide that "we want to test 3.1.1. compliance" and say so in the CLI. If we don't say it, then SRI Testing CLI complains and stops! So, @edeutsch @cbizon, this is not about tracking sheet project-level compliance but mainly about accurately publicizing the actual Biolink Model release of every endpoint. For this reason, the various alternatives for refining the reporting of Biolink Model version of endpoints are brainstormed above. I'm currently suspecting that option 2 - publicizing the implemented Biolink Model release as another reported parameter of the TRAPI However, @edeutsch implementing Option 2 would require a quick revision of TRAPI and earnest collaboration for implementation ASAP (i.e. in TRAPI 1.4). But, would this not be a super easy fix to TRAPI, easily curated by everyone? |
maybe. I thinking that it would be much easier for everyone to put it in their servers block. This area is not even really strictly part of TRAPI. It is managed by the SmartAPI folks. So if we can convince them to do this:
then everyone can be prodded to switch to this completely independently of TRAPI 1.4 (TRAPI 1.4 will take months to roll out) So I think option 3 is by far the most expedient. |
Voting for option 3 above, I see... ;-)) There seems to be a trade-off between visibility of the metadata and its maintainability. Pushing the Biolink Model version metadata into Putting in the servers block does makes it more immediately visible (akin to the current info.x-translator.biolink-version), and one supposes that TRAPI schema validation could ensure that it is properly set with some sensible SemVer value... although the discipline of ensuring that such a value remains consistent with the internal knowledge graph version, is still a matter of metadata curation discipline. |
Do we want to bring this up at next week's Architecture call? If we do option 2, this would be a TRAPI issue. But if we do option 3, then it is more a SmartAPI issue for Chunlei and his team. Decide at Arch where to send it @cbizon ? |
Either option 3 (with some modification) or 4 would be fine with me, and my notes are below:
|
Option 4 would be totally fine with the caveat that all endpoints of a given x-maturity environment will have to comply with one Biolink Model version. Option 3 might, however, provide for greater granularity, down to individual server endpoints, if that is desirable, since some KPs or ARAs may have more than one server of a given x- |
VOTING ON THIS ISSUE
31 January 2023 Translator Architecture Committee call briefly discussed this issue and converged on either of two options, as summarized by Chunlei below.
Please vote using the indicated emojis 🎉 (option 3) or 🚀 (option 4b) or👎(thumbs down) if you don't like either option (please example in an attached comment).
x-maturity
environment as ax-translator.biolink-version
property value alongside thex-maturity
property within the OpenAPIservers
block.x-maturity
indexed JSON 'object' specification as a value directly under the existinginfo.x-translator.biolink-version
property. There could also be adefault
value here too, or the legacy simple string (which would would continue to apply to allx-maturity
endpoints)Note for this option, the original simple string property value will also still work (applying to all
x-maturity
environments in the entry), namely:Note that the (modified) option 3) allows for finer granularity in server endpoint tagging with Biolink Model release whereas option 4b), although simpler, enforces only one Biolink Model release per
x-maturity
environment. That said, the general Translator policy seems to be that all servers of a givenx-maturity
environment are meant to be interchangeable, thus this granularity is NOT needed?Once again, please vote using the indicated emojis 🎉 (option 3) or 🚀 (option 4b) or👎(thumbs down) if you don't like either option (please example in an attached comment)..
Original Issue Overview
As Translator evolves, various
x-maturity
environment (server endpoints) within most KP or ARA appear to be updated asynchronously with respect to Biolink Model versions.For example, as of January 2023, the
production
environments may still, represent stable releases (from the fall 2022) of Biolink Model release 2.4.8, whereas, emergingdevelopment
andtesting
(CI) endpoints may already be compliant with Biolink Model 3.1.1. Even if this is only a periodic transient issue, it does introduce ambiguity with respect to use of Translator components, for example, with respect to global testing of compliance of those resources to standards (e.g. with SRI Testing).How can Translator SmartAPI Registry ("Registry") entries (or rather, the Translator community) manage this Biolink Model release heterogeneity across
x-maturity
environments?The text was updated successfully, but these errors were encountered: