| 5 |   |   | 
                  
                          | 6 |   | = Terminology =  | 
                  
                          | 7 |   |   | 
                  
                          | 8 |   | To facilitate discussion here is some clarificatory terminology:  | 
                  
                          | 9 |   |   | 
                  
                          | 10 |   |   * Repository: a given standalone instance containing domain objects.  | 
                  
                          | 11 |   |   * Revision: metadata about a particular change such as unique-id, author, timestamp (and maybe more such as: parents, hash ...)  | 
                  
                          | 12 |   |   * Patch: description of the changes to the domain model: e.g. a set of ids for changed versioned objects along with relevant diffs, necessary changes to non-versioned objects etc  | 
                  
                          | 13 |   |   * Changeset: the combination of a Revision and its associated Patch  | 
                  
                          | 14 |   |     * NB: a patch alone can be applied but it can only be applied "blind" (for example one has no idea whether the patch has already been applied earlier in the Repository history)  | 
                  
                          | 15 |   |     * NB: similarly a Revision along can be applied (it is a Changeset with a null Patch)  | 
                  
            
                      
                        | 68 |   |  - Changeset patch, creation (on new revision: create serialised diff)  | 
                      
                        | 69 |   |  - Changeset patch, publication (handle register-get and entity-get, searchable, publish-subscribe)  | 
                      
                        | 70 |   |  - Changeset patch, retrieval (get and add new changeset patches to local queue entity-get, add to queue)  | 
                      
                        | 71 |   |  - Changeset patch, conflict detection (possibly by asserting either that new values of changed attributes match current values of same attributes in model - so the patch would leave the local model in it's current state, or that old values of changed attributes match current values of same attributes in model - with refinements for merging diffs to "long text")  | 
                      
                        | 72 |   |  - Changeset patch, resolution (human response to conflict notification, decide new state, continue the queue)  | 
                      
                        | 73 |   |  - Changeset patch, application (model merge, record changeset patch has been applied)  | 
                      
                      
                        |   | 57 |  - Changeset patch creation (on new revision: create serialised diff)  | 
                      
                        |   | 58 |  - Changeset patch publication (handle register-get and entity-get, searchable, publish-subscribe)  | 
                      
                        |   | 59 |  - Changeset patch retrieval (get and add new changeset patches to local queue entity-get, add to queue)  | 
                      
                        |   | 60 |  - Changeset patch conflict detection (possibly by asserting either that new values of changed attributes match current values of same attributes in model - so the patch would leave the local model in it's current state, or that old values of changed attributes match current values of same attributes in model - with refinements for merging diffs to "long text")  | 
                      
                        |   | 61 |  - Changeset patch resolution (human response to conflict notification, decide new state, continue the queue)  | 
                      
                        |   | 62 |  - Changeset patch application (model merge, record changeset patch has been applied)  | 
                      
            
                      
                        | 75 |   |  - Model Merge (to include add/remove aggregated children e.g. packages)  | 
                      
                        | 76 |   |  - Model Package Merge (to include add/remove child associations e.g. taggings)  | 
                      
                        | 77 |   |  - Model Tag Merge (if there are any editable attributes )  | 
                      
                        | 78 |   |  - Model Group Merge (if there are any editable attributes)  | 
                      
                        | 79 |   |  - Model Text Merge (so parts of a longer piece of text can be merged into an otherwise conflicting text attribute)  | 
                      
                      
                        |   | 64 |  - Model merge (to include add/remove aggregated children e.g. packages)  | 
                      
                        |   | 65 |  - Package merge (to include add/remove child associations e.g. taggings)  | 
                      
                        |   | 66 |  - Tag merge (if there are any editable attributes )  | 
                      
                        |   | 67 |  - Group Merge (if there are any editable attributes)  | 
                      
                        |   | 68 |  - Text merge (so parts of a longer piece of text can be merged into an otherwise conflicting text attribute)  | 
                      
            
                  
                          |   | 81 |   | 
                  
                          |   | 82 | = Glossary (Early Draft) =  | 
                  
                          |   | 83 |   | 
                  
                          |   | 84 |   * Repository: a given standalone instance containing domain objects.  | 
                  
                          |   | 85 |   * Revision: metadata about a particular change such as unique-id, author, timestamp (and maybe more such as: parents, hash ...)  | 
                  
                          |   | 86 |   * Patch: description of the changes to the domain model: e.g. a set of ids for changed versioned objects along with relevant diffs, necessary changes to non-versioned objects etc  | 
                  
                          |   | 87 |   * Changeset: the combination of a Revision and its associated Patch  | 
                  
                          |   | 88 |     * NB: a patch alone can be applied but it can only be applied "blind" (for example one has no idea whether the patch has already been applied earlier in the Repository history)  | 
                  
                          |   | 89 |     * NB: similarly a Revision along can be applied (it is a Changeset with a null Patch)  | 
                  
                          |   | 90 |   |