New JSON-LD context-based version - #84
Draft
joshmoore wants to merge 10 commits into
Draft
Conversation
To define what the "omero:" field means while keeping as much backwards compatibility as possible, this introduces a new argument, `include_context`, to `encode()` which defaults to true. Previously callers will now receive the new context but internal uses of `encode()` methods pass `False` meaning that subobjects will not be littered with additional copies of the context.
joshmoore
added a commit
to joshmoore/omero-rdf
that referenced
this pull request
Dec 11, 2024
joshmoore
added a commit
to joshmoore/omero-rdf
that referenced
this pull request
Dec 11, 2024
All formats should now properly use OME 2016-06 as the default namespace and OMERO 2016-06 as the `omero:` ns. see: ome/omero-marshal#84
sbesson
reviewed
Mar 11, 2025
Member
There was a problem hiding this comment.
With a bit of delay, some feedback & a few initial questions ahead of the upcoming discussions around the extension of the OMERO JSON API:
- overall, very supportive of any proposal allowing to fix these TBD namespaces. In the absence of a published schema, http://www.openmicroscopy.org/Schemas/OMERO/2016-06 is probably as good as a starting point as any
- on the
include_contextkeyword, is there a situation where one would not want to include the context in the marshalled representation of an object? - as the
@typeof most objects is getting updated, I assume the decision to use@vocabis primarily for consistency instead of e.g. defining anotheromeprefix and havingome:Image?
Given the modifications to the format, one of the consideration is the impact of this proposal on the OMERO JSON API. At minimum, I suspect this will bring us to increasing the API_VERSION to the next number communicating backwards incompatible changes. Two immediate questions:
- my general feeling would be to start building a roadmap towards version
1.0of the OMERO JSON API i.e.api/v1/endpoints - is there some mechanism allowing
omero-marshalto selectively return the current format? Understanding this is additional infrastructure and legacy code that needs to be maintained, from an end-user perspective, being able to maintainapi/v0at least for a while means we could start rolling out these changes as backwards-compatible API additions rather than considering all the implications of backwards-incompatible API changes
/cc @kkoz @will-moore @jburel
Member
Author
Yes, recursively. The first invocation sets it to True and then all subsequent to False to avoid massive repetitions.
Exactly. Open for discussion though.
👍
I don't think it would be too difficult, just wasn't even a consideration during the hackathon. |
1 task
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
This is an attempt to update the omero-marshal JSON output to replace all uses of
TBD. This is done by introducing a top-level context of:Decisions made that may need reviewing:
encode()"include_context"ro:)