Replies: 1 comment 1 reply
-
For structural changes this may get really difficult to determine what the change actually is - whether it's an edit or a deletion. Have I moved a range? Or created a different range? Even a metadata value - any diff would have to apply to the whole metadata block and could only be change. Second Q How dependent is this process on the manifest editor itself? E.g., can the manifest editor be ignorant of how the diff is deduced? [consuming app] - [diff bridge] - [manifest editor] The "bridge" makes a note of the manifest when it's handed off... it then spends an unknown amount of time being edited. (like GitHub doesn't know what I'm up to when I'm editing code, it has to generate the diff on commit). I guess you could package the "bridge" with the editor, but it's separate, not intertwined. |
Beta Was this translation helpful? Give feedback.
-
This is a companion to This Madoc discussion where the process of integrating with external tools is being planned. Typically in Manifest Editing tools you will bring a Manifest to the tool, make your changes and then get back the Manifest (as json) with the changes you have made. Here I want to discuss other ways we could approach this - and how at a fundamental level we could make consuming changes from a Manifest Editor easier but also more flexible.
Simple use-case: Manifest label editor
For simplicity, let's strip the idea of this editor back to the absolute minimum. We have a UI that will take in a IIIF Manifest, and let you edit the label for that Manifest.
This is my editor. Now when I hit "save", what do we have? What could we have?
We have the new JSON, but we don't know what we did.
We could also have a more verbose change:
This is along the lines of what Madoc is proposing to do. Being able to take a Manifest, hand it off to an external tool, get the JSON back and then creating a list of "changes" by diffing them.
Some pseudo code to describe
The problem is that every tool may end up doing the same thing. Implementing some diff-ing and processing to update an external system - or take the changes from a Manifest Editor as a whole and replacing an entire JSON.
So if the Manifest Editor - in addition to providing a new Manifest as JSON - provided a clean well-defined list of changes then external system could consume these and apply changes on their own collection management systems.
Challenges
Beta Was this translation helpful? Give feedback.
All reactions