SWiM/services/MoC assistance

From MathWeb

Jump to: navigation, search

Change management assistance in SWiM

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.

Contents

Setting

editing mode (source or something else where the user can edit link targets)

1st Step: Collect dependencies and changes thereon

Input

  • 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

Processing

  1. find all concepts Di linked from C, together with the version number v given in the link
  2. check whether there have been non-minor changes; let v' be the most recent version
    1. Implementation: check by modification date (cf. make), or by version number?
  3. if not, process the next concept

Output

  • 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

2nd Step: Updating one link

  • or alternatively: update all links, by a button below the editing box
  • even better: let user select (check-box) links to update!

Input

  • the link to update: source S, target T, new target version v'

Output

  • just change the link to T / v' in the editing box :-)
Personal tools
MathWeb
Structures