Assume versioned links.
If the user modifies a document C, which contains versioned links to other documents Di, some of which have been updated (non-minor changes) since the last edit of C, ask the user whether he wants to update these links to the most recent version.
- Maybe only those link types that are already defined in the ontology (in the upper document ontology?) should be considered
- or better based on user's preferences: ontological links only, or all :-)
How can we bring the ontology into play? Or: Is that necessary? If so, we need a "literal" ontology, which models most aspects of the OMDoc/XML format.
editing mode (source or something else where the user can edit link targets)
1st Step: Collect dependencies and changes thereon
- the currently viewed concept C
- maybe: from the (upper) system ontology: which links denote dependencies?
- maybe later: the dependency graph from the knowledge base (not by value, but by reference, i.e. the ability to query the knowledge base)
- maybe later: user preferences, for filtering link types
- find all concepts Di linked from C, together with the version number v given in the link
- check whether there have been non-minor changes; let v' be the most recent version
- Implementation: check by modification date (cf. make), or by version number?
- if not, process the next concept
- the editing box, with indicators next to each updatable link
- records containing the number v' are included in each case, so that the 2nd step can be executed on the client
- Step 1.5: if the user clicks on an indicator, pop up a box with
- links to Di / v, Di / v', diff(Di / v,Di / v')
- buttons labeled keep and update
- or alternatively: update all links, by a button below the editing box
- even better: let user select (check-box) links to update!
- the link to update: source S, target T, new target version v'
- just change the link to T / v' in the editing box :-)