Protocols for the construction of a taxonomy by multiple users

Philippe A. MARTIN

This document, created in 1998, is a very partial translation into English of the Annex 2 of my PhD thesis. In 2000, I began the implementation of WebKB-2, a shared knowledge server, and realised that the ontology sharing protocols I described in the Annex 2 of my PhD thesis were too complex for people to adopt them. Hence, I implemented a more restricted but simpler approach to handle the sharing of the taxonomy, and I also extended it to take any statement (i.e. not just subsumption links) into account.



Rules for creations, modifications and deletions

Here, "term" refers to a "formal term", i.e. an identifier for a category (type or individual).

A user Ux may modify the terms s/he has created.

A user Ux may add definitions to his/her terms unless this leads to an unrepairable inconsistency with specialising statements S created by other users. The inconsistency may be detected by Ux or the system. To repair the inconsistency, Ux may do some modifications on S in a transaction or accept the system proposals: Ux may modify his/her terms in S or contextualise the s in S.

Ux may add any fact (including specialisations or generalisations of Uz fact) if that doesn't lead to an inconsistency.

To solve an inconsistency, Ux may modify a fact of Uz by generalising, specialising or contextualising it. Uz notified of modification and its cause.

Ux may add a definition to a term of Uz or reuse it or specialise it or generalise it unless that leads to an inconsistency with a statement co-created by Ux.

If that leads to an inconsistency (that the system or s/he detects) even if s/he hasn't created it, unless this leads to a detectable inconsistency that the user or the system can detect but cannot repair. We detail in the next section how some inconsistencies can be repaired.
??? When a user adds a definitional relation to a term t, s/he becomes co-creator of this term. If the definitional relation is a generalisation relation, the user also becomes co-creator of the terms generalising t at the momment of the creation of the relation.???

To create a new term, a user must specialise or generalise another term. This ensures that all terms can be compared and supports the application of the following rules.

A user may not remove a term directly but s/he may try to remove a relation between it and one of its generalising terms. A term which is no more connected to other terms is removed by the system.

Only the creator of a definitional relation between terms may remove it or modify it. If a user Ux tries to remove a relation which s/he created but which has other co-creators, the relation is not actually removed but is not anymore visible by Ux (and the relation has no creator anymore). If the relation is a specialisation relation, the specialised term is not anymore visible by Ux but its specialisations are still visible by Ux unless s/he asked to remove them too.??????

A user Ux who hasn't created a relation between terms may not remove it but may specify that s/he doesn't want to see it anymore. If the relation is a specialisation relation, the specialised term is not anymore visible by Ux but its specialisations are still visible by Ux unless s/he asked not to display them too.??????



Inconsistency repairing proposals

Several cases (exch user may choose what he prefers on his types) but the user which repairs the inconsistency chooses: 1) minimal (no clone), 2) clones (keep definitions)

Automatic inconsistency repairs allows a user Uy to add or modify terms s/he created without being bothered by specialising terms created by other users.

The system must modify the relations of other users to repair the inconsistency. Indeed, Uy cannot wait for other users to correct the way they used the terms of Uy. Besides, the automatic repair may be partially or entirely accepted by the other users.???

to define: term co-created, exclusive link, generalisations, direct generalisations, direct specialisations

If either
a) Y0 and Y1 are exclusive and Uy adds a relation of specialisation between Y2 and Y3 which therefore also makes Z3 a specialisation of Y0 and Y1, or
b) Z3 specialises Y0, Y1, Y2 and Y3, and Uy adds a relation of exclusion between Y0 and Y1,
then the created inconsistency may be repaired by the system as follows. The principle is first to "clone" one of the terms generalising Z3 and created by Uy, that is to replace it by a term (called the "clone") which has the same generalisations as the cloned term except the ones which cause the inconsistency.

Thus, Z3 has the same definitions as before the removal of the relation between Y5 and Z5 except those creating the inconsistency.

Thus the inconsistency repairing is a contrainst relaxation operation. Thanks to that, a user Uy may relate terms s/he created without bothering about specialising terms created by other users. These specialising terms may even be invisible for Uy (but the system takes all terms into account to maintain the consistency of the KB).
The users which have been registered as creators of the terms and relations created by the system to fix inconsistency are notified and may create more adequate relations or give the new terms more adequate names.????


Modification of a term definition

If when a user Uy adds or modifies a definition to a term Y0 s/he created, the system detects an inconsistency caused by the existence of a set Ez of terms specialising Y0 and created by users other than Uy, then the created inconsistency may be repaired by the system as follows.

As before, the principle is a constraint relaxation via term cloning. Now, the cloned terms are the term Y0 plus, in some cases, some of the terms which specialises Y0 (the cloning method is different from before).
The next figure illustrates the method which is described afterwards.

Ez={Z1,Z3,Z5}. Uy has just added a definition
to Y0 and this definition is inconsistent with the
definitions of the terms Z1, Z3 and Z5 which
have not been created by Uy.
          The inconsistency is fixed. The system
has created the terms Y0', Y2', Y3' and Y5'
respectively equivalent to Y0, Y2, Y3 and Y5
before the adding of the new definition to Y0.

Ez={Z3,Z5} or Ez={Z2,Z3}.
Z3 specialises the exclusive terms Y0 and Y1.
Y0, Y1, Y2, Y3 and Y5 have been created by Uy
while Z1, Z3 and Z5 have been created by Uz
(specialisation relations leading to terms created
by Uz are dashed).
        The inconsistency is fixed. To do that,
Ez={Z3,Z5} has been chosen and
the system has created Y5' by cloning Y5
(and registered Uz as its creator)
and replaced the relation between Z5 and Y5
by the relation between Z5 and Y5'
(another option would be to ask Uy or Uz
if s/he prefers Y1 to be cloned instead of Y5).
  1. Between Y0 and its direct generalisations, the system creates a term Y0' with the definitions Y0 had before Uy added or modified a definition. Thus, the direct specialisations of Y0 belonging to Ez are transfered to Y0'.

  2. Let the expression "relax constraints on a term Y" (where Y specialises Y0) refers to the generalisation of Y by a term Y' which has the same definitions as Y except those implying that it is a specialisation of Y0. Thus, if Y had direct generalisations not specialisations of Y0, they are transfered to Y'.
    Let the expression "clone a term Y" (where Y specialises Y0) refers to the following procedure and "clone of a term Y" refers to the term it returns:
        if Y has a direct generalisation Y' which specialises Y0'
            return Y'
        else
            if Y is a direct specialisation of Y0
                relax constraints on Y
                specialise Y0' by Y' in the same way as Y0 is specialised by Y z  (i.e. copy the
                   definitions implying that Y specialise Y0 and replace Y by Y' and Y0 by Y0')
                return Y'
            else
                let Yn be the direct generalisation of Y which specialises Y0
                let Yn' be the clone of Yn   (recursive call to this procedure)
                specialise Y0' by Y' in the same way as Y0 is specialised by Y
                return Y'

  3. for each term Y specialising Y0 and generalising a term of Ez   (e.g. Y is Y3 or Y5)
        clone Y under Y0'

  4. for each term Z belonging to Ez   (e.g. Z is Z1, Z3 or Z5)
        if Z is a direct specialisation of Y0   (e.g. Z is Z1)
            replace Y0 by Y0' in the definition which generalises Y0 by Y0
        else   (e.g. Z is Z3 or Z5)
            if Z is a direct specialisation of a term specialising Y0 and created by Uy
                let Yn be the direct generalisation of Z which specialises Y0   (e.g. Yn is Y5)
                let Yn' be the clone of Yn under Y0'   (e.g. Yn' is Y5')
                replace Yn by Yn' in the definition which generalises Z by Yn

    As in the previous case, the operations of cloning and replacement of relations are constraint relaxations operations. The registered creators of the new terms and relations are the creators of the terms of Ez. If a clone is necessary for repairing inconsistencies created by several terms of Ez, only one of the creators of these terms becomes creator of the clones, the other creators become co-creators of the clones. The creators of the terms of Ez are not anymore co-creator of Y0 and of the cloned terms. For the creator and co-creators of Y0' and the clones, the name of Y0' and these clones will appear as the name of Y0 and the cloned terms but prefixed by the string "clone_of_".

  5. The system notifies the creators of each term of Ez about the removed relations and the new relations created for them.