Wiki Grows Up:
Arbitrary Data Models, Access Control, and Beyond

a talk by

Reid Priedhorsky
IBM T.J. Watson Research Center
Collaborative User Experience Group

WikiSym 2011
Wiki Grows Up:
Arbitrary Data Models, Access Control, and Beyond

a talk by

Reid Priedhorsky
IBM T.J. Watson Research Center
Collaborative User Experience Group

WikiSym 2011
a wiki map for bicyclists




2
why I’m here




3
why I’m here


               3 objects




3
why I’m here


                           3 objects




          private object




3
why I’m here


                                3 objects




          private object

               ‣ratings
               ‣shared layers


3
why I’m here


                                3 objects




                   doing both is hard




          private object

               ‣ratings
               ‣shared layers


3
it’s hard because of undo




    Felipe can edit objects A and B
    Andrea can edit object A but not B




4
it’s hard because of undo




    Felipe can edit objects A and B
    Andrea can edit object A but not B
    1. Felipe saves a revision N of A and B




4
it’s hard because of undo




    Felipe can edit objects A and B
    Andrea can edit object A but not B
    1. Felipe saves a revision N of A and B
    2. Andrea wishes to revert N.




4
it’s hard because of undo




    Felipe can edit objects A and B
    Andrea can edit object A but not B
    1. Felipe saves a revision N of A and B
    2. Andrea wishes to revert N.
    3. #fail :-(


4
talk outline



    Wiki 1.0            – per-object state
    Wikipedia, et al.   + fine-grained access control


    Wiki 2.0            + global state
    Cyclopath now       – no fine-grained access control


    Wiki 3.0            + global state
    Cyclopath future    + fine-grained access control



5
talk outline
                independent objects

    Wiki 1.0            – per-object state
    Wikipedia, et al.   + fine-grained access control


    Wiki 2.0            + global state
    Cyclopath now       – no fine-grained access control


    Wiki 3.0            + global state
    Cyclopath future    + fine-grained access control



5
talk outline



    Wiki 1.0             – per-object state
    Wikipedia, et al.    + fine-grained access control
                arbitrary data
    Wiki 2.0             + global state
    Cyclopath now        – no fine-grained access control


    Wiki 3.0             + global state
    Cyclopath future     + fine-grained access control



5
talk outline



    Wiki 1.0             – per-object state
    Wikipedia, et al.    + fine-grained access control
                arbitrary data           like real version
    Wiki 2.0             + global state  control software

    Cyclopath now        – no fine-grained access control


    Wiki 3.0             + global state
    Cyclopath future     + fine-grained access control



5
talk outline



    Wiki 1.0            – per-object state
    Wikipedia, et al.   + fine-grained access control


    Wiki 2.0            + global state
    Cyclopath now       – no fine-grained access control


    Wiki 3.0            + global state
    Cyclopath future    + fine-grained access control


                arbitrary data + good access control
5
talk outline



    Wiki 1.0            – per-object state
    Wikipedia, et al.   + fine-grained access control


    Wiki 2.0            + global state
    Cyclopath now       – no fine-grained access control


    Wiki 3.0            + global state
    Cyclopath future    + fine-grained access control



6
editing history of two articles




                              Article
    Name       Ver. Text
    Cat          1   Cats are mammals.
    Cat          2   Cats are cute mammals.
    Mouse        1   Mice have pointy noses.
    Cat          3   Cats are cute mammals with whiskers.
    Mouse        2   Mice have pointy noses that wiggle.



7
editing history of two articles




                              Article
    Name       Ver. Text
    Cat          1   Cats are mammals.
    Cat          2   Cats are cute mammals.
    Mouse        1   Mice have pointy noses.
    Cat          3   Cats are cute mammals with whiskers.
    Mouse        2   Mice have pointy noses that wiggle.



7
editing history of two articles




                              Article
    Name       Ver. Text
    Cat          1   Cats are mammals.
    Cat          2   Cats are cute mammals.
    Mouse        1   Mice have pointy noses.
    Cat          3   Cats are cute mammals with whiskers.
    Mouse        2   Mice have pointy noses that wiggle.



7
editing history of two articles




                              Article
    Name       Ver. Text
    Cat          1   Cats are mammals.
    Cat          2   Cats are cute mammals.
    Mouse        1   Mice have pointy noses.
    Cat          3   Cats are cute mammals with whiskers.
    Mouse        2   Mice have pointy noses that wiggle.



7
editing history of two articles




                              Article
    Name       Ver. Text
    Cat          1   Cats are mammals.
    Cat          2   Cats are cute mammals.
    Mouse        1   Mice have pointy noses.
    Cat          3   Cats are cute mammals with whiskers.
    Mouse        2   Mice have pointy noses that wiggle.



7
editing history of two articles




                              Article
    Name       Ver. Text
    Cat          1   Cats are mammals.
    Cat          2   Cats are cute mammals.
    Mouse        1   Mice have pointy noses.
    Cat          3   Cats are cute mammals with whiskers.
    Mouse        2   Mice have pointy noses that wiggle.



7
editing history of two articles




                              Article
    Name       Ver. Text
    Cat          1   Cats are mammals.
    Cat          2   Cats are cute mammals.
    Mouse        1   Mice have pointy noses.
    Cat          3   Cats are cute mammals with whiskers.
    Mouse        2   Mice have pointy noses that wiggle.


                  unit of revision = one object
7
editing history of two articles
                ‣ Each object has independent state & history
                ‣ No well-defined global state

                ‣ Multiple edits can’t be saved atomically
                              Article
    Name       Ver. Text
    Cat             1   Cats are mammals.
    Cat             2   Cats are cute mammals.
    Mouse           1   Mice have pointy noses.
    Cat             3   Cats are cute mammals with whiskers.
    Mouse           2   Mice have pointy noses that wiggle.


                    unit of revision = one object
7
critical operation: undo

    An undo that is undone forms a no-op.




8
three ways to undo work in wikis




9
three ways to undo work in wikis




    1. Manual editing




9
three ways to undo work in wikis




    1. Manual editing
    2. Revert offending revision N
    ... copy revision N – 1 and save it as a new revision
    ... destroys all work after N too




9
three ways to undo work in wikis




    1. Manual editing
    2. Revert offending revision N
    ... copy revision N – 1 and save it as a new revision
    ... destroys all work after N too

    3. Reverse-merge offending revision N



9
Reverse-merging revision 2 of article “Cat”
(Wikipedia calls this “undo”.)



                                   Article
     Name           Ver. Text
     Cat              1     Cats are mammals.
     Cat              2     Cats are cute mammals.
     Mouse            1     Mice have pointy noses.
     Cat              3     Cats are cute mammals with whiskers.
     Mouse            2     Mice have pointy noses that wiggle.
     Cat              4     Cats are mammals with whiskers.



10
Reverse-merging revision 2 of article “Cat”
(Wikipedia calls this “undo”.)



                                   Article
     Name           Ver. Text
     Cat              1     Cats are mammals.
     Cat              2     Cats are cute mammals.
     Mouse            1     Mice have pointy noses.
     Cat              3     Cats are cute mammals with whiskers.
     Mouse            2     Mice have pointy noses that wiggle.
     Cat              4     Cats are mammals with whiskers.



10
Reverse-merging revision 2 of article “Cat”
(Wikipedia calls this “undo”.)



                                   Article
     Name           Ver. Text
     Cat              1     Cats are mammals.
     Cat              2     Cats are cute mammals.
     Mouse            1     Mice have pointy noses.
     Cat              3     Cats are cute mammals with whiskers.
     Mouse            2     Mice have pointy noses that wiggle.
     Cat              4     Cats are mammals with whiskers.



10
Reverse-merging revision 2 of article “Cat”
(Wikipedia calls this “undo”.)



                                   Article
     Name           Ver. Text
     Cat              1     Cats are mammals.
     Cat              2     Cats are cute mammals.
     Mouse            1     Mice have pointy noses.
     Cat              3     Cats are cute mammals with whiskers.
     Mouse            2     Mice have pointy noses that wiggle.
     Cat              4     Cats are mammals with whiskers.



10
Reverse-merging revision 2 of article “Cat”
(Wikipedia calls this “undo”.)



                                   Article
     Name           Ver. Text
     Cat              1     Cats are mammals.
     Cat              2     Cats are cute mammals.
     Mouse            1     Mice have pointy noses.
     Cat              3     Cats are cute mammals with whiskers.
     Mouse            2     Mice have pointy noses that wiggle.
     Cat              4     Cats are mammals with whiskers.



10
Reverse-merging revision 2 of article “Cat”
(Wikipedia calls this “undo”.)


                                         remove cute from between
                                   Article and mammals
                                         are
     Name           Ver. Text
     Cat              1     Cats are mammals.
     Cat              2     Cats are cute mammals.
     Mouse            1     Mice have pointy noses.
     Cat              3     Cats are cute mammals with whiskers.
     Mouse            2     Mice have pointy noses that wiggle.
     Cat              4     Cats are mammals with whiskers.



10
Reverse-merging revision 2 of article “Cat”
(Wikipedia calls this “undo”.)


                                         remove cute from between
                                   Article and mammals
                                         are
     Name           Ver. Text
     Cat              1     Cats are mammals.
     Cat              2     Cats are cute mammals.
     Mouse            1     Mice have pointy noses.
     Cat              3     Cats are cute mammals with whiskers.
     Mouse            2     Mice have pointy noses that wiggle.
     Cat              4     Cats are mammals with whiskers.



10
Reverse-merging revision 2 of article “Cat”
(Wikipedia calls this “undo”.)


                                         remove cute from between
                                   Article and mammals
                                         are
     Name           Ver. Text
     Cat              1     Cats are mammals.
     Cat              2     Cats are cute mammals.
     Mouse            1     Mice have pointy noses.
     Cat              3     Cats are cute mammals with whiskers.
     Mouse            2     Mice have pointy noses that wiggle.
     Cat              4     Cats are mammals with whiskers.



10
Reverse-merging revision 2 of article “Cat”
(Wikipedia calls this “undo”.)


                                         remove cute from between
                                   Article and mammals
                                         are
     Name           Ver. Text
     Cat              1     Cats are mammals.
     Cat              2     Cats are cute mammals.
     Mouse            1     Mice have pointy noses.
     Cat              3     Cats are cute mammals with whiskers.
     Mouse            2     Mice have pointy noses that wiggle.
     Cat              4     Cats are mammals with whiskers.

             reverse-merge + reverse-merge = no-op
10
access control in traditional wikis




11
access control in Wiki 1.0



     Basic model: access control lists (ACLs)
     ... e.g., each “thing” has lists of who can do what

     Even Wikipedia uses ACLs
     ... e.g., ACL for editing most articles is “everyone”
     ... e.g., for protected articles it’s “all administrators”

     Natural granularity is one article
     Thus: unit of access control is one object
     ... i.e., unit of access control ≥ unit of revision


12
the point

     Traditional wikis have mature undo and
      fine-grained access control, but lack
            global state management.



13
talk outline



     Wiki 1.0            – per-object state         ✓
     Wikipedia, et al.   + fine-grained access control


     Wiki 2.0            + global state
     Cyclopath now       – no fine-grained access control


     Wiki 3.0            + global state
     Cyclopath future    + fine-grained access control



14
data model overview


                      Edge




         Note                  Point




                      Region




15
data model overview


                       Edge




         Note         Revision   Point




                      Region




15
data model overview


                            Edge
all versioning is
controlled by this table


         Note              Revision   Point




                           Region




15
data model overview


                                Edge
all versioning is
controlled by this table


         Note                 Revision                Point




                              Region


             unit of revision = entire database
         at every instant, there is a well-defined global state
15
Editing history of three articles




                               Article
 ID Ver. VSR VBR Del? Name          Text




16
Editing history of three articles




                               Article
 ID Ver. VSR VBR Del? Name          Text


     identifier (integer)




16
Editing history of three articles




                               Article
 ID Ver. VSR VBR Del? Name          Text


         version (integer)




16
Editing history of three articles


                    “valid before revision”
                               Article
 ID Ver. VSR VBR Del? Name          Text


              “valid starting revision”




16
Editing history of three articles




                               Article
 ID Ver. VSR VBR Del? Name          Text


                         deleted flag (boolean)




16
Editing history of three articles

                   Revision 21: Create “Mouse”

                               Article
 ID Ver. VSR VBR Del? Name          Text
55   1    21   ∞     no Mouse Mice have pointy noses.




17
Editing history of three articles

                   Revision 21: Create “Mouse”

                               Article
 ID Ver. VSR VBR Del? Name          Text
55   1    21   ∞     no Mouse Mice have pointy noses.




17
Editing history of three articles

                   Revision 21: Create “Mouse”

                               Article
 ID Ver. VSR VBR Del? Name          Text
55   1    21   ∞     no Mouse Mice have pointy noses.




17
Editing history of three articles

                   Revision 21: Create “Mouse”

                               Article
 ID Ver. VSR VBR Del? Name          Text
55   1    21   ∞     no Mouse Mice have pointy noses.




17
Editing history of three articles

                   Revision 21: Create “Mouse”

                               Article
 ID Ver. VSR VBR Del? Name          Text
55   1    21   ∞     no Mouse Mice have pointy noses.




17
Editing history of three articles

                   Revision 21: Create “Mouse”

                               Article
 ID Ver. VSR VBR Del? Name          Text
55   1    21   ∞     no Mouse Mice have pointy noses.




17
Editing history of three articles

                   Revision 21: Create “Mouse”

                               Article
 ID Ver. VSR VBR Del? Name          Text
55   1    21   ∞     no Mouse Mice have pointy noses.




17
Editing history of three articles

               Revision 22: Create “Cat” and “Dog”

                               Article
 ID Ver. VSR VBR Del? Name          Text
55   1    21    ∞   no Mouse Mice have pointy noses.
66   1    22    ∞   no Cat          Cats are mammals.
77   1    22    ∞   no Dog          Dogs smell funny.




18
Editing history of three articles

               Revision 22: Create “Cat” and “Dog”

                               Article
 ID Ver. VSR VBR Del? Name          Text
55   1    21    ∞   no Mouse Mice have pointy noses.
66   1    22    ∞   no Cat          Cats are mammals.
77   1    22    ∞   no Dog          Dogs smell funny.




18
Editing history of three articles

               Revision 22: Create “Cat” and “Dog”

                               Article
 ID Ver. VSR VBR Del? Name          Text
55   1    21    ∞   no Mouse Mice have pointy noses.
66   1    22    ∞   no Cat          Cats are mammals.
77   1    22    ∞   no Dog          Dogs smell funny.




18
Editing history of three articles

               Revision 22: Create “Cat” and “Dog”

                               Article
 ID Ver. VSR VBR Del? Name          Text
55   1    21    ∞   no Mouse Mice have pointy noses.
66   1    22    ∞   no Cat          Cats are mammals.
77   1    22    ∞   no Dog          Dogs smell funny.




18
Editing history of three articles

               Revision 22: Create “Cat” and “Dog”

                               Article
 ID Ver. VSR VBR Del? Name          Text
55   1    21    ∞   no Mouse Mice have pointy noses.
66   1    22    ∞   no Cat          Cats are mammals.
77   1    22    ∞   no Dog          Dogs smell funny.




18
Editing history of three articles

               Revision 22: Create “Cat” and “Dog”

                               Article
 ID Ver. VSR VBR Del? Name          Text
55   1    21    ∞   no Mouse Mice have pointy noses.
66   1    22    ∞   no Cat          Cats are mammals.
77   1    22    ∞   no Dog          Dogs smell funny.




18
Editing history of three articles

         Revision 23: Alter text of “Cat” and “Mouse”

                               Article
 ID Ver. VSR VBR Del? Name          Text
55   1    21   ∞    no Mouse Mice have pointy noses.
66   1    22   ∞    no Cat          Cats are mammals.
77   1    22   ∞    no Dog          Dogs smell funny.
55   2    23   ∞    no Mouse Mice have pointy noses that wiggle.
66   2    23   ∞    no Cat          Cats are cute mammals.




19
Editing history of three articles

         Revision 23: Alter text of “Cat” and “Mouse”

                               Article
 ID Ver. VSR VBR Del? Name          Text
55   1    21   ∞    no Mouse Mice have pointy noses.
66   1    22   ∞    no Cat          Cats are mammals.
77   1    22   ∞    no Dog          Dogs smell funny.
55   2    23   ∞    no Mouse Mice have pointy noses that wiggle.
66   2    23   ∞    no Cat          Cats are cute mammals.




19
Editing history of three articles

         Revision 23: Alter text of “Cat” and “Mouse”

                               Article
 ID Ver. VSR VBR Del? Name          Text
55   1    21   ∞    no Mouse Mice have pointy noses.
66   1    22   ∞    no Cat          Cats are mammals.
77   1    22   ∞    no Dog          Dogs smell funny.
55   2    23   ∞    no Mouse Mice have pointy noses that wiggle.
66   2    23   ∞    no Cat          Cats are cute mammals.




19
Editing history of three articles

         Revision 23: Alter text of “Cat” and “Mouse”

                               Article
 ID Ver. VSR VBR Del? Name          Text
55   1    21   ∞    no Mouse Mice have pointy noses.
66   1    22   ∞    no Cat          Cats are mammals.
77   1    22   ∞    no Dog          Dogs smell funny.
55   2    23   ∞    no Mouse Mice have pointy noses that wiggle.
66   2    23   ∞    no Cat          Cats are cute mammals.




19
Editing history of three articles

         Revision 23: Alter text of “Cat” and “Mouse”

                               Article
 ID Ver. VSR VBR Del? Name          Text
55   1    21   ∞    no Mouse Mice have pointy noses.
66   1    22   ∞    no Cat          Cats are mammals.
77   1    22   ∞    no Dog          Dogs smell funny.
55   2    23   ∞    no Mouse Mice have pointy noses that wiggle.
66   2    23   ∞    no Cat          Cats are cute mammals.




19
Editing history of three articles

         Revision 23: Alter text of “Cat” and “Mouse”

                               Article
 ID Ver. VSR VBR Del? Name          Text
55   1    21   ∞
               23   no Mouse Mice have pointy noses.
66   1    22   23
               ∞    no Cat          Cats are mammals.
77   1    22   ∞    no Dog          Dogs smell funny.
55   2    23   ∞    no Mouse Mice have pointy noses that wiggle.
66   2    23   ∞    no Cat          Cats are cute mammals.




19
Editing history of three articles
                                              r21 / 8:01 pm
                                                  ‣

                                            ‣ r22 / 8:30 pm
         Revision 23: Alter text of “Cat” and “Mouse”pm
                                            ‣ r23 / 8:47


                               Article
 ID Ver. VSR VBR Del? Name          Text
55   1    21   ∞
               23   no Mouse Mice have pointy noses.
66   1    22   23
               ∞    no Cat          Cats are mammals.
77   1    22   ∞    no Dog          Dogs smell funny.
55   2    23   ∞    no Mouse Mice have pointy noses that wiggle.
66   2    23   ∞    no Cat          Cats are cute mammals.




19
Editing history of three articles
                                              r21 / 8:01 pm
                                                  ‣

                                            ‣ r22 / 8:30 pm
         Revision 23: Alter text of “Cat” and “Mouse”pm
                                            ‣ r23 / 8:47


                               Article
 ID Ver. VSR VBR Del? Name          Text
55   1    21   ∞
               23   no Mouse Mice have pointy noses.
66   1    22   23
               ∞    no Cat          Cats are mammals.
77   1    22   ∞    no Dog          Dogs smell funny.
55   2    23   ∞    no Mouse Mice have pointy noses that wiggle.
66   2    23   ∞    no Cat          Cats are cute mammals.




19
Editing history of three articles
                                              r21 / 8:01 pm
                                                  ‣

                                            ‣ r22 / 8:30 pm
         Revision 23: Alter text of “Cat” and “Mouse”pm
     valid from 8:01:00.000                 ‣ r23 / 8:47
              to 8:46:59.999
                               Article
 ID Ver. VSR VBR Del? Name          Text
55   1    21   ∞
               23   no Mouse Mice have pointy noses.
66   1    22   23
               ∞    no Cat          Cats are mammals.
77   1    22   ∞    no Dog          Dogs smell funny.
55   2    23   ∞    no Mouse Mice have pointy noses that wiggle.
66   2    23   ∞    no Cat          Cats are cute mammals.




19
Editing history of three articles

         Revision 24: Alter text of “Cat”, delete “Dog”

                               Article
 ID Ver. VSR VBR Del? Name          Text
55   1    21   23   no Mouse Mice have pointy noses.
66   1    22   23   no Cat          Cats are mammals.
77   1    22   ∞    no Dog          Dogs smell funny.
55   2    23   ∞    no Mouse Mice have pointy noses that wiggle.
66   2    23   ∞    no Cat          Cats are cute mammals.
66   3    24   ∞    no Cat          Cats are cute mammals with whiskers.
77   2    24   ∞    yes —           —


20
Editing history of three articles

         Revision 24: Alter text of “Cat”, delete “Dog”

                               Article
 ID Ver. VSR VBR Del? Name          Text
55   1    21   23   no Mouse Mice have pointy noses.
66   1    22   23   no Cat          Cats are mammals.
77   1    22   24
               ∞    no Dog          Dogs smell funny.
55   2    23   ∞    no Mouse Mice have pointy noses that wiggle.
66   2    23   24
               ∞    no Cat          Cats are cute mammals.
66   3    24   ∞    no Cat          Cats are cute mammals with whiskers.
77   2    24   ∞    yes —           —


20
Editing history of three articles

         Revision 24: Alter text of “Cat”, delete “Dog”

                               Article
 ID Ver. VSR VBR Del? Name          Text
55   1    21   23   no Mouse Mice have pointy noses.
66   1    22   23   no Cat          Cats are mammals.
77   1    22   24
               ∞    no Dog          Dogs smell funny.
55   2    23   ∞    no Mouse Mice have pointy noses that wiggle.
66   2    23   24
               ∞    no Cat          Cats are cute mammals.
66   3    24   ∞    no Cat          Cats are cute mammals with whiskers.
77   2    24   ∞    yes —           —


20
Editing history of three articles

         Revision 24: Alter text of “Cat”, delete “Dog”

                               Article
 ID Ver. VSR VBR Del? Name          Text
55   1    21   23   no Mouse Mice have pointy noses.
66   1    22   23   no Cat          Cats are mammals.
77   1    22   24
               ∞    no Dog          Dogs smell funny.
55   2    23   ∞    no Mouse Mice have pointy noses that wiggle.
66   2    23   24
               ∞    no Cat          Cats are cute mammals.
66   3    24   ∞    no Cat          Cats are cute mammals with whiskers.
77   2    24   ∞    yes —           —


20
Editing history of three articles

         Revision 24: Alter text of “Cat”, delete “Dog”

                               Article
 ID Ver. VSR VBR Del? Name          Text
55   1    21   23   no Mouse Mice have pointy noses.
66   1    22   23   no Cat          Cats are mammals.
77   1    22   24
               ∞    no Dog          Dogs smell funny.
55   2    23   ∞    no Mouse Mice have pointy noses that wiggle.
66   2    23   24
               ∞    no Cat          Cats are cute mammals.
66   3    24   ∞    no Cat          Cats are cute mammals with whiskers.
77   2    24   ∞    yes —           —


20
undoing work under global state




21
Reverse-merge revision 23, creating revision 25


                             Article
 ID Ver. VSR VBR Del? Name    Text
55   1   21   23   no Mouse Mice have pointy noses.
66   1   22   23   no Cat     Cats are mammals.
77   1   22   24   no Dog     Dogs smell funny.
55   2   23   ∞    no Mouse Mice have pointy noses that wiggle.
66   2   23   24   no Cat     Cats are cute mammals.
66   3   24   ∞    no Cat     Cats are cute mammals with whiskers.
77   2   24   ∞    yes —      —
55   3   25   ∞    no Mouse Mice have pointy noses.
66   4   25   ∞    no Cat     Cats are mammals with whiskers.

22
Reverse-merge revision 23, creating revision 25


                             Article
 ID Ver. VSR VBR Del? Name    Text
55   1   21   23   no Mouse Mice have pointy noses.
66   1   22   23   no Cat     Cats are mammals.
77   1   22   24   no Dog     Dogs smell funny.
55   2   23   ∞    no Mouse Mice have pointy noses that wiggle.
66   2   23   24   no Cat     Cats are cute mammals.
66   3   24   ∞    no Cat     Cats are cute mammals with whiskers.
77   2   24   ∞    yes —      —
55   3   25   ∞    no Mouse Mice have pointy noses.
66   4   25   ∞    no Cat     Cats are mammals with whiskers.

22
Reverse-merge revision 23, creating revision 25


                             Article
 ID Ver. VSR VBR Del? Name    Text
55   1   21   23   no Mouse Mice have pointy noses.
66   1   22   23   no Cat     Cats are mammals.
77   1   22   24   no Dog     Dogs smell funny.
55   2   23   ∞    no Mouse Mice have pointy noses that wiggle.
66   2   23   24   no Cat     Cats are cute mammals.
66   3   24   ∞    no Cat     Cats are cute mammals with whiskers.
77   2   24   ∞    yes —      —
55   3   25   ∞    no Mouse Mice have pointy noses.
66   4   25   ∞    no Cat     Cats are mammals with whiskers.

22
Reverse-merge revision 23, creating revision 25


                             Article
 ID Ver. VSR VBR Del? Name    Text
55   1   21   23   no Mouse Mice have pointy noses.
66   1   22   23   no Cat     Cats are mammals.
77   1   22   24   no Dog     Dogs smell funny.
55   2   23   ∞    no Mouse Mice have pointy noses that wiggle.
66   2   23   24   no Cat     Cats are cute mammals.
66   3   24   ∞    no Cat     Cats are cute mammals with whiskers.
77   2   24   ∞    yes —      —
55   3   25   ∞    no Mouse Mice have pointy noses.
66   4   25   ∞    no Cat     Cats are mammals with whiskers.

22
Reverse-merge revision 23, creating revision 25


                             Article
                                            remove that wiggle
 ID Ver. VSR VBR Del? Name    Text
55   1   21   23   no Mouse Mice have pointy noses.
66   1   22   23   no Cat     Cats are mammals.
77   1   22   24   no Dog     Dogs smell funny.
55   2   23   ∞    no Mouse Mice have pointy noses that wiggle.
66   2   23   24   no Cat     Cats are cute mammals.
66   3   24   ∞    no Cat     Cats are cute mammals with whiskers.
77   2   24   ∞    yes —      —
55   3   25   ∞    no Mouse Mice have pointy noses.
66   4   25   ∞    no Cat     Cats are mammals with whiskers.

22
Reverse-merge revision 23, creating revision 25


                             Article
                                            remove that wiggle
 ID Ver. VSR VBR Del? Name    Text
55   1   21   23   no Mouse Mice have pointy noses.
66   1   22   23   no Cat     Cats are mammals.
77   1   22   24   no Dog     Dogs smell funny.
55   2   23   ∞    no Mouse Mice have pointy noses that wiggle.
66   2   23   24   no Cat     Cats are cute mammals.
66   3   24   ∞    no Cat     Cats are cute mammals with whiskers.
77   2   24   ∞    yes —      —
55   3   25   ∞    no Mouse Mice have pointy noses.
66   4   25   ∞    no Cat     Cats are mammals with whiskers.

22
Reverse-merge revision 23, creating revision 25


                             Article
                                            remove that wiggle
 ID Ver. VSR VBR Del? Name    Text
55   1   21   23   no Mouse Mice have pointy noses.
66   1   22   23   no Cat     Cats are mammals.
77   1   22   24   no Dog     Dogs smell funny.
55   2   23   ∞    no Mouse Mice have pointy noses that wiggle.
66   2   23   24   no Cat     Cats are cute mammals.
66   3   24   ∞    no Cat     Cats are cute mammals with whiskers.
77   2   24   ∞    yes —      —
55   3   25   ∞    no Mouse Mice have pointy noses.
66   4   25   ∞    no Cat     Cats are mammals with whiskers.

22
Reverse-merge revision 23, creating revision 25


                             Article
 ID Ver. VSR VBR Del? Name    Text
55   1   21   23   no Mouse Mice have pointy noses.
66   1   22   23   no Cat     Cats are mammals.
77   1   22   24   no Dog     Dogs smell funny.
55   2   23   ∞    no Mouse Mice have pointy noses that wiggle.
66   2   23   24   no Cat     Cats are cute mammals.
66   3   24   ∞    no Cat     Cats are cute mammals with whiskers.
77   2   24   ∞    yes —      —
55   3   25   ∞    no Mouse Mice have pointy noses.
66   4   25   ∞    no Cat     Cats are mammals with whiskers.

22
Reverse-merge revision 23, creating revision 25


                             Article
 ID Ver. VSR VBR Del? Name    Text
55   1   21   23   no Mouse Mice have pointy noses.
66   1   22   23   no Cat     Cats are mammals.
77   1   22   24   no Dog     Dogs smell funny.
55   2   23   ∞    no Mouse Mice have pointy noses that wiggle.
66   2   23   24   no Cat     Cats are cute mammals.
66   3   24   ∞    no Cat     Cats are cute mammals with whiskers.
77   2   24   ∞    yes —      —
55   3   25   ∞    no Mouse Mice have pointy noses.
66   4   25   ∞    no Cat     Cats are mammals with whiskers.

22
Reverse-merge revision 23, creating revision 25

                                                  remove cute
                             Article
 ID Ver. VSR VBR Del? Name    Text
55   1   21   23   no Mouse Mice have pointy noses.
66   1   22   23   no Cat     Cats are mammals.
77   1   22   24   no Dog     Dogs smell funny.
55   2   23   ∞    no Mouse Mice have pointy noses that wiggle.
66   2   23   24   no Cat     Cats are cute mammals.
66   3   24   ∞    no Cat     Cats are cute mammals with whiskers.
77   2   24   ∞    yes —      —
55   3   25   ∞    no Mouse Mice have pointy noses.
66   4   25   ∞    no Cat     Cats are mammals with whiskers.

22
Reverse-merge revision 23, creating revision 25

                                                  remove cute
                             Article
 ID Ver. VSR VBR Del? Name    Text
55   1   21   23   no Mouse Mice have pointy noses.
66   1   22   23   no Cat     Cats are mammals.
77   1   22   24   no Dog     Dogs smell funny.
55   2   23   ∞    no Mouse Mice have pointy noses that wiggle.
66   2   23   24   no Cat     Cats are cute mammals.
66   3   24   ∞    no Cat     Cats are cute mammals with whiskers.
77   2   24   ∞    yes —      —
55   3   25   ∞    no Mouse Mice have pointy noses.
66   4   25   ∞    no Cat     Cats are mammals with whiskers.

22
Reverse-merge revision 23, creating revision 25

                                                  remove cute
                             Article
 ID Ver. VSR VBR Del? Name    Text
55   1   21   23   no Mouse Mice have pointy noses.
66   1   22   23   no Cat     Cats are mammals.
77   1   22   24   no Dog     Dogs smell funny.
55   2   23   ∞    no Mouse Mice have pointy noses that wiggle.
66   2   23   24   no Cat     Cats are cute mammals.
66   3   24   ∞    no Cat     Cats are cute mammals with whiskers.
77   2   24   ∞    yes —      —
55   3   25   ∞    no Mouse Mice have pointy noses.
66   4   25   ∞    no Cat     Cats are mammals with whiskers.

22
Reverse-merge revision 23, creating revision 25


                             Article
 ID Ver. VSR VBR Del? Name    Text
55   1   21   23   no Mouse Mice have pointy noses.
66   1   22   23   no Cat     Cats are mammals.
77   1   22   24   no Dog     Dogs smell funny.
55   2   23   ∞    no Mouse Mice have pointy noses that wiggle.
66   2   23   24   no Cat     Cats are cute mammals.
66   3   24   ∞    no Cat     Cats are cute mammals with whiskers.
77   2   24   ∞    yes —      —
55   3   25   ∞    no Mouse Mice have pointy noses.
66   4   25   ∞    no Cat     Cats are mammals with whiskers.

22
Reverse-merge revision 23, creating revision 25


                             Article
 ID Ver. VSR VBR Del? Name    Text
55   1   21   23   no Mouse Mice have pointy noses.
66   1   22   23   no Cat     Cats are mammals.
77   1   22   24   no Dog     Dogs smell funny.
55   2   23   ∞
              25   no Mouse Mice have pointy noses that wiggle.
66   2   23   24   no Cat     Cats are cute mammals.
66   3   24   ∞
              25   no Cat     Cats are cute mammals with whiskers.
77   2   24   ∞    yes —      —
55   3   25   ∞    no Mouse Mice have pointy noses.
66   4   25   ∞    no Cat     Cats are mammals with whiskers.

22
Reverse-merge revision 23, creating revision 25


                             Article
 ID Ver. VSR VBR Del? Name    Text
55   1   21   23   no Mouse Mice have pointy noses.
66   1   22   23   no Cat     Cats are mammals.
77   1   22   24   no Dog     Dogs smell funny.
55   2   23   ∞
              25   no Mouse Mice have pointy noses that wiggle.
66   2   23   24   no Cat     Cats are cute mammals.
66   3   24   ∞
              25   no Cat     Cats are cute mammals with whiskers.
77   2   24   ∞    yes —      —
55   3   25   ∞    no Mouse Mice have pointy noses.
66   4   25   ∞    no Cat     Cats are mammals with whiskers.

22
           (see paper & backup slides for revert)
undoing under global state management




     Keep “undo that is undone = no-op”
     Generally: More complicated because
     the data is more complex
     ... see paper for details
     ... (Cyclopath does not do reverse-merge)

     But, no big deal


23
the point

     Now we have global state management.

                       but:

     unit of access control = unit of revision
      (i.e., the whole database); too coarse.

24
talk outline



     Wiki 1.0            – per-object state         ✓
     Wikipedia, et al.   + fine-grained access control


     Wiki 2.0            + global state             ✓
     Cyclopath now       – no fine-grained access control


     Wiki 3.0            + global state
     Cyclopath future    + fine-grained access control



25
talk outline



     Wiki 1.0              – per-object state                 ✓
     Wikipedia, et al.     + fine-grained access control


     Wiki 2.0              + global state                     ✓
     Cyclopath now         – no fine-grained access control


     Wiki 3.0              + global state
     Cyclopath future      + fine-grained access control

                ‣ unit of access control < unit of revision
                ‣ meta access control

25
problem: undo



                             Article
 ID Ver. VSR VBR Del? Name    Text
55   1   21   23   no Mouse Mice have pointy noses.
66   1   22   23   no Cat     Cats are mammals.
77   1   22   24   no Dog     Dogs smell funny.
55   2   23   ∞    no Mouse Mice have pointy noses that wiggle.
66   2   23   24   no Cat     Cats are cute mammals.
66   3   24   ∞    no Cat     Cats are cute mammals with whiskers.
77   2   24   ∞    yes —      —


26
problem: undo



                             Article
 ID Ver. VSR VBR Del? Name    Text
55   1   21   23   no Mouse Mice have pointy noses.
66   1   22   23   no Cat     Cats are mammals.
77   1   22   24   no Dog     Dogs smell funny.
55   2   23   ∞    no Mouse Mice have pointy noses that wiggle.
66   2   23   24   no Cat     Cats are cute mammals.
66   3   24   ∞    no Cat     Cats are cute mammals with whiskers.
77   2   24   ∞    yes —      —


26
problem: undo
     Felipe can edit “Cat” and “Mouse” → no problem


                               Article
 ID Ver. VSR VBR Del? Name      Text
55     1   21   23   no Mouse Mice have pointy noses.
66     1   22   23   no Cat     Cats are mammals.
77     1   22   24   no Dog     Dogs smell funny.
55     2   23   ∞    no Mouse Mice have pointy noses that wiggle.
66     2   23   24   no Cat     Cats are cute mammals.
66     3   24   ∞    no Cat     Cats are cute mammals with whiskers.
77     2   24   ∞    yes —      —


26
problem: undo
     Felipe can edit “Cat” and “Mouse” → no problem
     Andrea can edit “Cat” but not “Mouse” → problem
                               Article
 ID Ver. VSR VBR Del? Name      Text
55     1   21   23   no Mouse Mice have pointy noses.
66     1   22   23   no Cat     Cats are mammals.
77     1   22   24   no Dog     Dogs smell funny.
55     2   23   ∞    no Mouse Mice have pointy noses that wiggle.
66     2   23   24   no Cat     Cats are cute mammals.
66     3   24   ∞    no Cat     Cats are cute mammals with whiskers.
77     2   24   ∞    yes —      —


26
problem: undo
     Felipe can edit “Cat” and “Mouse” → no problem
     Andrea can edit “Cat” but not “Mouse” → problem
                               Article
 ID Ver. VSR VBR Del? Name      Text
55     1   21   23   no Mouse Mice have pointy noses.
66     1   22   23   no Cat     Cats are mammals.
77     1   22   24   no Dog     Dogs smell funny.
55     2   23   ∞    no Mouse Mice have pointy noses that wiggle.
66     2   23   24   no Cat     Cats are cute mammals.
66     3   24   ∞    no Cat     Cats are cute mammals with whiskers.
77     2   24   ∞    yes —      —

                      Solution: partial undo
26
problem: undo
     Felipe can edit “Cat” and “Mouse” → no problem
     Andrea can edit “Cat” but not “Mouse” → problem
                               Article
 ID Ver. VSR VBR Del? Name      Text
55     1   21   23   no Mouse Mice have pointy noses.
66     1   22   23   no Cat     Cats are mammals.
77     1   22   24   no Dog     Dogs smell funny.
55     2   23   ∞    no Mouse Mice have pointy noses that wiggle.
66     2   23   24   no Cat     Cats are cute mammals.
66     3   24   ∞    no Cat     Cats are cute mammals with whiskers.
77     2   24   ∞    yes —      —

                      Solution: partial undo
26
                      Andrea reverts just “Cat”
partial undo to enable unit of access control < unit of revision



     Old: Undo entire revision or nothing at all
     New: Undo only part of a revision
     ... i.e., undo changes to objects I have access to

     Keep: “undo that is undone = no-op”
     ... iff second undo is a complete undo

     Need UI support to reduce confusion
     ... e.g., warn if introducing potential for partial undo
     ... e.g., special “completify undo” operation


27
meta access control

     i.e., constraints on
     access control lists




28
use cases from Cyclopath



     Public base map
     ... edges of transportation network must be public

     Private watch regions
     ... regions can be public or private

     Rate anything that can be seen, privately
     ... force ratings to be private
     ... allow rating anything, even if can’t edit other attributes

     Shared private layers
     ... force objects to have same permissions as the layer

29
implementation overview



     Databases + recursion = ☹
     ... i.e., best to make access decision with just one lookup

     Each Cyclopath object has 4 ACLs
     ... viewing, searching, editing, changing access
     ... implemented w/ standard optimizations

     That’s basic access control
     Meta access control gives rules defining
     valid ACL content

30                              basic/meta model from Dewan & Shen, 1998
the point

 With partial undo and both basic & meta
access control, wikis can implement both
global state management and fine-grained
              access control.



31
talk outline



     Wiki 1.0            – per-object state         ✓
     Wikipedia, et al.   + fine-grained access control


     Wiki 2.0            + global state             ✓
     Cyclopath now       – no fine-grained access control


     Wiki 3.0            + global state             ✓
     Cyclopath future    + fine-grained access control



32
I’ve described ways to make wikis
             less simple and less open.

     Have we lost the spirit of the wiki model?




33
The 3 fundamental properties of the wiki model




34
The 3 fundamental properties of the wiki model



     1. Inverted publishing model
     ... review after publication, not before




34
The 3 fundamental properties of the wiki model



     1. Inverted publishing model
     ... review after publication, not before

     2. Maximally open access
     ... whenever reasonable, anyone can change anything
     ... minimize e.g. unfriendly UI, unfriendly culture




34
The 3 fundamental properties of the wiki model



     1. Inverted publishing model
     ... review after publication, not before

     2. Maximally open access
     ... whenever reasonable, anyone can change anything
     ... minimize e.g. unfriendly UI, unfriendly culture

     3. Transparent changes
     ... everyone can see who is changing what
     ... recent changes lists, watching, diffing
     ... enables meta-work (notably, undoing bad edits)


34
the point

     Our radical new collaboration model, the
     wiki, has great promise in many domains.

      Why limit ourselves to relatively
 unstructured data or contexts with simple
          access control needs?

35
the end
Reid Priedhorsky and Loren Terveen


reid@reidster.net
http://reidster.net/research/
Cyclopath revisions




37
Cyclopath revisions




in example:
26 edges, 9 notes




37
Cyclopath revisions




in example:
26 edges, 9 notes
of 13k revisions:
60% alter graph
65% alter >1 object




37
Reverting revision 2 of article “Cat”



                              Article
     Name      Ver. Text
     Cat        1    Cats are mammals.
     Cat        2    Cats are cute mammals.
     Mouse      1    Mice have pointy noses.
     Cat        3    Cats are cute mammals with whiskers.
     Mouse      2    Mice have pointy noses that wiggle.
     Cat        4    Cats are mammals.



38
Reverting revision 2 of article “Cat”



                              Article
     Name      Ver. Text
     Cat        1    Cats are mammals.
     Cat        2    Cats are cute mammals.
     Mouse      1    Mice have pointy noses.
     Cat        3    Cats are cute mammals with whiskers.
     Mouse      2    Mice have pointy noses that wiggle.
     Cat        4    Cats are mammals.



38
Reverting revision 2 of article “Cat”



                              Article
     Name      Ver. Text
     Cat        1    Cats are mammals.
     Cat        2    Cats are cute mammals.
     Mouse      1    Mice have pointy noses.
     Cat        3    Cats are cute mammals with whiskers.
     Mouse      2    Mice have pointy noses that wiggle.
     Cat        4    Cats are mammals.



38
Reverting revision 2 of article “Cat”



                              Article
     Name      Ver. Text
     Cat        1    Cats are mammals.
     Cat        2    Cats are cute mammals.
     Mouse      1    Mice have pointy noses.
     Cat        3    Cats are cute mammals with whiskers.
     Mouse      2    Mice have pointy noses that wiggle.
     Cat        4    Cats are mammals.



38
Reverting revision 2 of article “Cat”



                              Article
     Name      Ver. Text
     Cat        1    Cats are mammals.
     Cat        2    Cats are cute mammals.
     Mouse      1    Mice have pointy noses.
     Cat        3    Cats are cute mammals with whiskers.
     Mouse      2    Mice have pointy noses that wiggle.
     Cat        4    Cats are mammals.



38
Reverting revision 2 of article “Cat”



                              Article
     Name      Ver. Text
     Cat        1    Cats are mammals.
     Cat        2    Cats are cute mammals.
     Mouse      1    Mice have pointy noses.
     Cat        3    Cats are cute mammals with whiskers.
     Mouse      2    Mice have pointy noses that wiggle.
     Cat        4    Cats are mammals.



38
Reverting revision 2 of article “Cat”



                              Article
     Name      Ver. Text
     Cat        1    Cats are mammals.
     Cat        2    Cats are cute mammals.
     Mouse      1    Mice have pointy noses.
     Cat        3    Cats are cute mammals with whiskers.
     Mouse      2    Mice have pointy noses that wiggle.
     Cat        4    Cats are mammals.



38
Reverting revision 23, creating revision 25



                             Article
 ID Ver. VSR VBR Del? Name     Text
55   1   21   23   no Mouse Mice have pointy noses.
66   1   22   23   no Cat      Cats are mammals.
77   1   22   24   no Dog      Dogs smell funny.
55   2   23    ∞   no Mouse Mice have pointy noses that wiggle.
66   2   23   24   no Cat      Cats are cute mammals.
66   3   24    ∞   no Cat      Cats are cute mammals with whiskers.
77   2   24    ∞   yes —       —
55   3   25    ∞   no Mouse Mice have pointy noses.
66   4   25    ∞   no Cat      Cats are mammals.
39
Reverting revision 23, creating revision 25



                             Article
 ID Ver. VSR VBR Del? Name     Text
55   1   21   23   no Mouse Mice have pointy noses.
66   1   22   23   no Cat      Cats are mammals.
77   1   22   24   no Dog      Dogs smell funny.
55   2   23    ∞   no Mouse Mice have pointy noses that wiggle.
66   2   23   24   no Cat      Cats are cute mammals.
66   3   24    ∞   no Cat      Cats are cute mammals with whiskers.
77   2   24    ∞   yes —       —
55   3   25    ∞   no Mouse Mice have pointy noses.
66   4   25    ∞   no Cat      Cats are mammals.
39
Reverting revision 23, creating revision 25



                             Article
 ID Ver. VSR VBR Del? Name     Text
55   1   21   23   no Mouse Mice have pointy noses.
66   1   22   23   no Cat      Cats are mammals.
77   1   22   24   no Dog      Dogs smell funny.
55   2   23    ∞   no Mouse Mice have pointy noses that wiggle.
66   2   23   24   no Cat      Cats are cute mammals.
66   3   24    ∞   no Cat      Cats are cute mammals with whiskers.
77   2   24    ∞   yes —       —
55   3   25    ∞   no Mouse Mice have pointy noses.
66   4   25    ∞   no Cat      Cats are mammals.
39
Reverting revision 23, creating revision 25



                             Article
 ID Ver. VSR VBR Del? Name     Text
55   1   21   23   no Mouse Mice have pointy noses.
66   1   22   23   no Cat      Cats are mammals.
77   1   22   24   no Dog      Dogs smell funny.
55   2   23    ∞   no Mouse Mice have pointy noses that wiggle.
66   2   23   24   no Cat      Cats are cute mammals.
66   3   24    ∞   no Cat      Cats are cute mammals with whiskers.
77   2   24    ∞   yes —       —
55   3   25    ∞   no Mouse Mice have pointy noses.
66   4   25    ∞   no Cat      Cats are mammals.
39
Reverting revision 23, creating revision 25



                             Article
 ID Ver. VSR VBR Del? Name     Text
55   1   21   23   no Mouse Mice have pointy noses.
66   1   22   23   no Cat      Cats are mammals.
77   1   22   24   no Dog      Dogs smell funny.
55   2   23    ∞   no Mouse Mice have pointy noses that wiggle.
66   2   23   24   no Cat      Cats are cute mammals.
66   3   24    ∞   no Cat      Cats are cute mammals with whiskers.
77   2   24    ∞   yes —       —
55   3   25    ∞   no Mouse Mice have pointy noses.
66   4   25    ∞   no Cat      Cats are mammals.
39
Reverting revision 23, creating revision 25



                             Article
 ID Ver. VSR VBR Del? Name     Text
55   1   21   23   no Mouse Mice have pointy noses.
66   1   22   23   no Cat      Cats are mammals.
77   1   22   24   no Dog      Dogs smell funny.
55   2   23    ∞   no Mouse Mice have pointy noses that wiggle.
66   2   23   24   no Cat      Cats are cute mammals.
66   3   24    ∞   no Cat      Cats are cute mammals with whiskers.
77   2   24    ∞   yes —       —
55   3   25    ∞   no Mouse Mice have pointy noses.
66   4   25    ∞   no Cat      Cats are mammals.
39
Reverting revision 23, creating revision 25



                             Article
 ID Ver. VSR VBR Del? Name     Text
55   1   21   23   no Mouse Mice have pointy noses.
66   1   22   23   no Cat      Cats are mammals.
77   1   22   24   no Dog      Dogs smell funny.
55   2   23   ∞
              25   no Mouse Mice have pointy noses that wiggle.
66   2   23   24   no Cat      Cats are cute mammals.
66   3   24   ∞
              25   no Cat      Cats are cute mammals with whiskers.
77   2   24    ∞   yes —       —
55   3   25    ∞   no Mouse Mice have pointy noses.
66   4   25    ∞   no Cat      Cats are mammals.
39

reidpr.wikisym.201110

  • 1.
    Wiki Grows Up: ArbitraryData Models, Access Control, and Beyond a talk by Reid Priedhorsky IBM T.J. Watson Research Center Collaborative User Experience Group WikiSym 2011
  • 2.
    Wiki Grows Up: ArbitraryData Models, Access Control, and Beyond a talk by Reid Priedhorsky IBM T.J. Watson Research Center Collaborative User Experience Group WikiSym 2011
  • 3.
    a wiki mapfor bicyclists 2
  • 4.
  • 5.
    why I’m here 3 objects 3
  • 6.
    why I’m here 3 objects private object 3
  • 7.
    why I’m here 3 objects private object ‣ratings ‣shared layers 3
  • 8.
    why I’m here 3 objects doing both is hard private object ‣ratings ‣shared layers 3
  • 9.
    it’s hard becauseof undo Felipe can edit objects A and B Andrea can edit object A but not B 4
  • 10.
    it’s hard becauseof undo Felipe can edit objects A and B Andrea can edit object A but not B 1. Felipe saves a revision N of A and B 4
  • 11.
    it’s hard becauseof undo Felipe can edit objects A and B Andrea can edit object A but not B 1. Felipe saves a revision N of A and B 2. Andrea wishes to revert N. 4
  • 12.
    it’s hard becauseof undo Felipe can edit objects A and B Andrea can edit object A but not B 1. Felipe saves a revision N of A and B 2. Andrea wishes to revert N. 3. #fail :-( 4
  • 13.
    talk outline Wiki 1.0 – per-object state Wikipedia, et al. + fine-grained access control Wiki 2.0 + global state Cyclopath now – no fine-grained access control Wiki 3.0 + global state Cyclopath future + fine-grained access control 5
  • 14.
    talk outline independent objects Wiki 1.0 – per-object state Wikipedia, et al. + fine-grained access control Wiki 2.0 + global state Cyclopath now – no fine-grained access control Wiki 3.0 + global state Cyclopath future + fine-grained access control 5
  • 15.
    talk outline Wiki 1.0 – per-object state Wikipedia, et al. + fine-grained access control arbitrary data Wiki 2.0 + global state Cyclopath now – no fine-grained access control Wiki 3.0 + global state Cyclopath future + fine-grained access control 5
  • 16.
    talk outline Wiki 1.0 – per-object state Wikipedia, et al. + fine-grained access control arbitrary data like real version Wiki 2.0 + global state control software Cyclopath now – no fine-grained access control Wiki 3.0 + global state Cyclopath future + fine-grained access control 5
  • 17.
    talk outline Wiki 1.0 – per-object state Wikipedia, et al. + fine-grained access control Wiki 2.0 + global state Cyclopath now – no fine-grained access control Wiki 3.0 + global state Cyclopath future + fine-grained access control arbitrary data + good access control 5
  • 18.
    talk outline Wiki 1.0 – per-object state Wikipedia, et al. + fine-grained access control Wiki 2.0 + global state Cyclopath now – no fine-grained access control Wiki 3.0 + global state Cyclopath future + fine-grained access control 6
  • 19.
    editing history oftwo articles Article Name Ver. Text Cat 1 Cats are mammals. Cat 2 Cats are cute mammals. Mouse 1 Mice have pointy noses. Cat 3 Cats are cute mammals with whiskers. Mouse 2 Mice have pointy noses that wiggle. 7
  • 20.
    editing history oftwo articles Article Name Ver. Text Cat 1 Cats are mammals. Cat 2 Cats are cute mammals. Mouse 1 Mice have pointy noses. Cat 3 Cats are cute mammals with whiskers. Mouse 2 Mice have pointy noses that wiggle. 7
  • 21.
    editing history oftwo articles Article Name Ver. Text Cat 1 Cats are mammals. Cat 2 Cats are cute mammals. Mouse 1 Mice have pointy noses. Cat 3 Cats are cute mammals with whiskers. Mouse 2 Mice have pointy noses that wiggle. 7
  • 22.
    editing history oftwo articles Article Name Ver. Text Cat 1 Cats are mammals. Cat 2 Cats are cute mammals. Mouse 1 Mice have pointy noses. Cat 3 Cats are cute mammals with whiskers. Mouse 2 Mice have pointy noses that wiggle. 7
  • 23.
    editing history oftwo articles Article Name Ver. Text Cat 1 Cats are mammals. Cat 2 Cats are cute mammals. Mouse 1 Mice have pointy noses. Cat 3 Cats are cute mammals with whiskers. Mouse 2 Mice have pointy noses that wiggle. 7
  • 24.
    editing history oftwo articles Article Name Ver. Text Cat 1 Cats are mammals. Cat 2 Cats are cute mammals. Mouse 1 Mice have pointy noses. Cat 3 Cats are cute mammals with whiskers. Mouse 2 Mice have pointy noses that wiggle. 7
  • 25.
    editing history oftwo articles Article Name Ver. Text Cat 1 Cats are mammals. Cat 2 Cats are cute mammals. Mouse 1 Mice have pointy noses. Cat 3 Cats are cute mammals with whiskers. Mouse 2 Mice have pointy noses that wiggle. unit of revision = one object 7
  • 26.
    editing history oftwo articles ‣ Each object has independent state & history ‣ No well-defined global state ‣ Multiple edits can’t be saved atomically Article Name Ver. Text Cat 1 Cats are mammals. Cat 2 Cats are cute mammals. Mouse 1 Mice have pointy noses. Cat 3 Cats are cute mammals with whiskers. Mouse 2 Mice have pointy noses that wiggle. unit of revision = one object 7
  • 27.
    critical operation: undo An undo that is undone forms a no-op. 8
  • 28.
    three ways toundo work in wikis 9
  • 29.
    three ways toundo work in wikis 1. Manual editing 9
  • 30.
    three ways toundo work in wikis 1. Manual editing 2. Revert offending revision N ... copy revision N – 1 and save it as a new revision ... destroys all work after N too 9
  • 31.
    three ways toundo work in wikis 1. Manual editing 2. Revert offending revision N ... copy revision N – 1 and save it as a new revision ... destroys all work after N too 3. Reverse-merge offending revision N 9
  • 32.
    Reverse-merging revision 2of article “Cat” (Wikipedia calls this “undo”.) Article Name Ver. Text Cat 1 Cats are mammals. Cat 2 Cats are cute mammals. Mouse 1 Mice have pointy noses. Cat 3 Cats are cute mammals with whiskers. Mouse 2 Mice have pointy noses that wiggle. Cat 4 Cats are mammals with whiskers. 10
  • 33.
    Reverse-merging revision 2of article “Cat” (Wikipedia calls this “undo”.) Article Name Ver. Text Cat 1 Cats are mammals. Cat 2 Cats are cute mammals. Mouse 1 Mice have pointy noses. Cat 3 Cats are cute mammals with whiskers. Mouse 2 Mice have pointy noses that wiggle. Cat 4 Cats are mammals with whiskers. 10
  • 34.
    Reverse-merging revision 2of article “Cat” (Wikipedia calls this “undo”.) Article Name Ver. Text Cat 1 Cats are mammals. Cat 2 Cats are cute mammals. Mouse 1 Mice have pointy noses. Cat 3 Cats are cute mammals with whiskers. Mouse 2 Mice have pointy noses that wiggle. Cat 4 Cats are mammals with whiskers. 10
  • 35.
    Reverse-merging revision 2of article “Cat” (Wikipedia calls this “undo”.) Article Name Ver. Text Cat 1 Cats are mammals. Cat 2 Cats are cute mammals. Mouse 1 Mice have pointy noses. Cat 3 Cats are cute mammals with whiskers. Mouse 2 Mice have pointy noses that wiggle. Cat 4 Cats are mammals with whiskers. 10
  • 36.
    Reverse-merging revision 2of article “Cat” (Wikipedia calls this “undo”.) Article Name Ver. Text Cat 1 Cats are mammals. Cat 2 Cats are cute mammals. Mouse 1 Mice have pointy noses. Cat 3 Cats are cute mammals with whiskers. Mouse 2 Mice have pointy noses that wiggle. Cat 4 Cats are mammals with whiskers. 10
  • 37.
    Reverse-merging revision 2of article “Cat” (Wikipedia calls this “undo”.) remove cute from between Article and mammals are Name Ver. Text Cat 1 Cats are mammals. Cat 2 Cats are cute mammals. Mouse 1 Mice have pointy noses. Cat 3 Cats are cute mammals with whiskers. Mouse 2 Mice have pointy noses that wiggle. Cat 4 Cats are mammals with whiskers. 10
  • 38.
    Reverse-merging revision 2of article “Cat” (Wikipedia calls this “undo”.) remove cute from between Article and mammals are Name Ver. Text Cat 1 Cats are mammals. Cat 2 Cats are cute mammals. Mouse 1 Mice have pointy noses. Cat 3 Cats are cute mammals with whiskers. Mouse 2 Mice have pointy noses that wiggle. Cat 4 Cats are mammals with whiskers. 10
  • 39.
    Reverse-merging revision 2of article “Cat” (Wikipedia calls this “undo”.) remove cute from between Article and mammals are Name Ver. Text Cat 1 Cats are mammals. Cat 2 Cats are cute mammals. Mouse 1 Mice have pointy noses. Cat 3 Cats are cute mammals with whiskers. Mouse 2 Mice have pointy noses that wiggle. Cat 4 Cats are mammals with whiskers. 10
  • 40.
    Reverse-merging revision 2of article “Cat” (Wikipedia calls this “undo”.) remove cute from between Article and mammals are Name Ver. Text Cat 1 Cats are mammals. Cat 2 Cats are cute mammals. Mouse 1 Mice have pointy noses. Cat 3 Cats are cute mammals with whiskers. Mouse 2 Mice have pointy noses that wiggle. Cat 4 Cats are mammals with whiskers. reverse-merge + reverse-merge = no-op 10
  • 41.
    access control intraditional wikis 11
  • 42.
    access control inWiki 1.0 Basic model: access control lists (ACLs) ... e.g., each “thing” has lists of who can do what Even Wikipedia uses ACLs ... e.g., ACL for editing most articles is “everyone” ... e.g., for protected articles it’s “all administrators” Natural granularity is one article Thus: unit of access control is one object ... i.e., unit of access control ≥ unit of revision 12
  • 43.
    the point Traditional wikis have mature undo and fine-grained access control, but lack global state management. 13
  • 44.
    talk outline Wiki 1.0 – per-object state ✓ Wikipedia, et al. + fine-grained access control Wiki 2.0 + global state Cyclopath now – no fine-grained access control Wiki 3.0 + global state Cyclopath future + fine-grained access control 14
  • 45.
    data model overview Edge Note Point Region 15
  • 46.
    data model overview Edge Note Revision Point Region 15
  • 47.
    data model overview Edge all versioning is controlled by this table Note Revision Point Region 15
  • 48.
    data model overview Edge all versioning is controlled by this table Note Revision Point Region unit of revision = entire database at every instant, there is a well-defined global state 15
  • 49.
    Editing history ofthree articles Article ID Ver. VSR VBR Del? Name Text 16
  • 50.
    Editing history ofthree articles Article ID Ver. VSR VBR Del? Name Text identifier (integer) 16
  • 51.
    Editing history ofthree articles Article ID Ver. VSR VBR Del? Name Text version (integer) 16
  • 52.
    Editing history ofthree articles “valid before revision” Article ID Ver. VSR VBR Del? Name Text “valid starting revision” 16
  • 53.
    Editing history ofthree articles Article ID Ver. VSR VBR Del? Name Text deleted flag (boolean) 16
  • 54.
    Editing history ofthree articles Revision 21: Create “Mouse” Article ID Ver. VSR VBR Del? Name Text 55 1 21 ∞ no Mouse Mice have pointy noses. 17
  • 55.
    Editing history ofthree articles Revision 21: Create “Mouse” Article ID Ver. VSR VBR Del? Name Text 55 1 21 ∞ no Mouse Mice have pointy noses. 17
  • 56.
    Editing history ofthree articles Revision 21: Create “Mouse” Article ID Ver. VSR VBR Del? Name Text 55 1 21 ∞ no Mouse Mice have pointy noses. 17
  • 57.
    Editing history ofthree articles Revision 21: Create “Mouse” Article ID Ver. VSR VBR Del? Name Text 55 1 21 ∞ no Mouse Mice have pointy noses. 17
  • 58.
    Editing history ofthree articles Revision 21: Create “Mouse” Article ID Ver. VSR VBR Del? Name Text 55 1 21 ∞ no Mouse Mice have pointy noses. 17
  • 59.
    Editing history ofthree articles Revision 21: Create “Mouse” Article ID Ver. VSR VBR Del? Name Text 55 1 21 ∞ no Mouse Mice have pointy noses. 17
  • 60.
    Editing history ofthree articles Revision 21: Create “Mouse” Article ID Ver. VSR VBR Del? Name Text 55 1 21 ∞ no Mouse Mice have pointy noses. 17
  • 61.
    Editing history ofthree articles Revision 22: Create “Cat” and “Dog” Article ID Ver. VSR VBR Del? Name Text 55 1 21 ∞ no Mouse Mice have pointy noses. 66 1 22 ∞ no Cat Cats are mammals. 77 1 22 ∞ no Dog Dogs smell funny. 18
  • 62.
    Editing history ofthree articles Revision 22: Create “Cat” and “Dog” Article ID Ver. VSR VBR Del? Name Text 55 1 21 ∞ no Mouse Mice have pointy noses. 66 1 22 ∞ no Cat Cats are mammals. 77 1 22 ∞ no Dog Dogs smell funny. 18
  • 63.
    Editing history ofthree articles Revision 22: Create “Cat” and “Dog” Article ID Ver. VSR VBR Del? Name Text 55 1 21 ∞ no Mouse Mice have pointy noses. 66 1 22 ∞ no Cat Cats are mammals. 77 1 22 ∞ no Dog Dogs smell funny. 18
  • 64.
    Editing history ofthree articles Revision 22: Create “Cat” and “Dog” Article ID Ver. VSR VBR Del? Name Text 55 1 21 ∞ no Mouse Mice have pointy noses. 66 1 22 ∞ no Cat Cats are mammals. 77 1 22 ∞ no Dog Dogs smell funny. 18
  • 65.
    Editing history ofthree articles Revision 22: Create “Cat” and “Dog” Article ID Ver. VSR VBR Del? Name Text 55 1 21 ∞ no Mouse Mice have pointy noses. 66 1 22 ∞ no Cat Cats are mammals. 77 1 22 ∞ no Dog Dogs smell funny. 18
  • 66.
    Editing history ofthree articles Revision 22: Create “Cat” and “Dog” Article ID Ver. VSR VBR Del? Name Text 55 1 21 ∞ no Mouse Mice have pointy noses. 66 1 22 ∞ no Cat Cats are mammals. 77 1 22 ∞ no Dog Dogs smell funny. 18
  • 67.
    Editing history ofthree articles Revision 23: Alter text of “Cat” and “Mouse” Article ID Ver. VSR VBR Del? Name Text 55 1 21 ∞ no Mouse Mice have pointy noses. 66 1 22 ∞ no Cat Cats are mammals. 77 1 22 ∞ no Dog Dogs smell funny. 55 2 23 ∞ no Mouse Mice have pointy noses that wiggle. 66 2 23 ∞ no Cat Cats are cute mammals. 19
  • 68.
    Editing history ofthree articles Revision 23: Alter text of “Cat” and “Mouse” Article ID Ver. VSR VBR Del? Name Text 55 1 21 ∞ no Mouse Mice have pointy noses. 66 1 22 ∞ no Cat Cats are mammals. 77 1 22 ∞ no Dog Dogs smell funny. 55 2 23 ∞ no Mouse Mice have pointy noses that wiggle. 66 2 23 ∞ no Cat Cats are cute mammals. 19
  • 69.
    Editing history ofthree articles Revision 23: Alter text of “Cat” and “Mouse” Article ID Ver. VSR VBR Del? Name Text 55 1 21 ∞ no Mouse Mice have pointy noses. 66 1 22 ∞ no Cat Cats are mammals. 77 1 22 ∞ no Dog Dogs smell funny. 55 2 23 ∞ no Mouse Mice have pointy noses that wiggle. 66 2 23 ∞ no Cat Cats are cute mammals. 19
  • 70.
    Editing history ofthree articles Revision 23: Alter text of “Cat” and “Mouse” Article ID Ver. VSR VBR Del? Name Text 55 1 21 ∞ no Mouse Mice have pointy noses. 66 1 22 ∞ no Cat Cats are mammals. 77 1 22 ∞ no Dog Dogs smell funny. 55 2 23 ∞ no Mouse Mice have pointy noses that wiggle. 66 2 23 ∞ no Cat Cats are cute mammals. 19
  • 71.
    Editing history ofthree articles Revision 23: Alter text of “Cat” and “Mouse” Article ID Ver. VSR VBR Del? Name Text 55 1 21 ∞ no Mouse Mice have pointy noses. 66 1 22 ∞ no Cat Cats are mammals. 77 1 22 ∞ no Dog Dogs smell funny. 55 2 23 ∞ no Mouse Mice have pointy noses that wiggle. 66 2 23 ∞ no Cat Cats are cute mammals. 19
  • 72.
    Editing history ofthree articles Revision 23: Alter text of “Cat” and “Mouse” Article ID Ver. VSR VBR Del? Name Text 55 1 21 ∞ 23 no Mouse Mice have pointy noses. 66 1 22 23 ∞ no Cat Cats are mammals. 77 1 22 ∞ no Dog Dogs smell funny. 55 2 23 ∞ no Mouse Mice have pointy noses that wiggle. 66 2 23 ∞ no Cat Cats are cute mammals. 19
  • 73.
    Editing history ofthree articles r21 / 8:01 pm ‣ ‣ r22 / 8:30 pm Revision 23: Alter text of “Cat” and “Mouse”pm ‣ r23 / 8:47 Article ID Ver. VSR VBR Del? Name Text 55 1 21 ∞ 23 no Mouse Mice have pointy noses. 66 1 22 23 ∞ no Cat Cats are mammals. 77 1 22 ∞ no Dog Dogs smell funny. 55 2 23 ∞ no Mouse Mice have pointy noses that wiggle. 66 2 23 ∞ no Cat Cats are cute mammals. 19
  • 74.
    Editing history ofthree articles r21 / 8:01 pm ‣ ‣ r22 / 8:30 pm Revision 23: Alter text of “Cat” and “Mouse”pm ‣ r23 / 8:47 Article ID Ver. VSR VBR Del? Name Text 55 1 21 ∞ 23 no Mouse Mice have pointy noses. 66 1 22 23 ∞ no Cat Cats are mammals. 77 1 22 ∞ no Dog Dogs smell funny. 55 2 23 ∞ no Mouse Mice have pointy noses that wiggle. 66 2 23 ∞ no Cat Cats are cute mammals. 19
  • 75.
    Editing history ofthree articles r21 / 8:01 pm ‣ ‣ r22 / 8:30 pm Revision 23: Alter text of “Cat” and “Mouse”pm valid from 8:01:00.000 ‣ r23 / 8:47 to 8:46:59.999 Article ID Ver. VSR VBR Del? Name Text 55 1 21 ∞ 23 no Mouse Mice have pointy noses. 66 1 22 23 ∞ no Cat Cats are mammals. 77 1 22 ∞ no Dog Dogs smell funny. 55 2 23 ∞ no Mouse Mice have pointy noses that wiggle. 66 2 23 ∞ no Cat Cats are cute mammals. 19
  • 76.
    Editing history ofthree articles Revision 24: Alter text of “Cat”, delete “Dog” Article ID Ver. VSR VBR Del? Name Text 55 1 21 23 no Mouse Mice have pointy noses. 66 1 22 23 no Cat Cats are mammals. 77 1 22 ∞ no Dog Dogs smell funny. 55 2 23 ∞ no Mouse Mice have pointy noses that wiggle. 66 2 23 ∞ no Cat Cats are cute mammals. 66 3 24 ∞ no Cat Cats are cute mammals with whiskers. 77 2 24 ∞ yes — — 20
  • 77.
    Editing history ofthree articles Revision 24: Alter text of “Cat”, delete “Dog” Article ID Ver. VSR VBR Del? Name Text 55 1 21 23 no Mouse Mice have pointy noses. 66 1 22 23 no Cat Cats are mammals. 77 1 22 24 ∞ no Dog Dogs smell funny. 55 2 23 ∞ no Mouse Mice have pointy noses that wiggle. 66 2 23 24 ∞ no Cat Cats are cute mammals. 66 3 24 ∞ no Cat Cats are cute mammals with whiskers. 77 2 24 ∞ yes — — 20
  • 78.
    Editing history ofthree articles Revision 24: Alter text of “Cat”, delete “Dog” Article ID Ver. VSR VBR Del? Name Text 55 1 21 23 no Mouse Mice have pointy noses. 66 1 22 23 no Cat Cats are mammals. 77 1 22 24 ∞ no Dog Dogs smell funny. 55 2 23 ∞ no Mouse Mice have pointy noses that wiggle. 66 2 23 24 ∞ no Cat Cats are cute mammals. 66 3 24 ∞ no Cat Cats are cute mammals with whiskers. 77 2 24 ∞ yes — — 20
  • 79.
    Editing history ofthree articles Revision 24: Alter text of “Cat”, delete “Dog” Article ID Ver. VSR VBR Del? Name Text 55 1 21 23 no Mouse Mice have pointy noses. 66 1 22 23 no Cat Cats are mammals. 77 1 22 24 ∞ no Dog Dogs smell funny. 55 2 23 ∞ no Mouse Mice have pointy noses that wiggle. 66 2 23 24 ∞ no Cat Cats are cute mammals. 66 3 24 ∞ no Cat Cats are cute mammals with whiskers. 77 2 24 ∞ yes — — 20
  • 80.
    Editing history ofthree articles Revision 24: Alter text of “Cat”, delete “Dog” Article ID Ver. VSR VBR Del? Name Text 55 1 21 23 no Mouse Mice have pointy noses. 66 1 22 23 no Cat Cats are mammals. 77 1 22 24 ∞ no Dog Dogs smell funny. 55 2 23 ∞ no Mouse Mice have pointy noses that wiggle. 66 2 23 24 ∞ no Cat Cats are cute mammals. 66 3 24 ∞ no Cat Cats are cute mammals with whiskers. 77 2 24 ∞ yes — — 20
  • 81.
    undoing work underglobal state 21
  • 82.
    Reverse-merge revision 23,creating revision 25 Article ID Ver. VSR VBR Del? Name Text 55 1 21 23 no Mouse Mice have pointy noses. 66 1 22 23 no Cat Cats are mammals. 77 1 22 24 no Dog Dogs smell funny. 55 2 23 ∞ no Mouse Mice have pointy noses that wiggle. 66 2 23 24 no Cat Cats are cute mammals. 66 3 24 ∞ no Cat Cats are cute mammals with whiskers. 77 2 24 ∞ yes — — 55 3 25 ∞ no Mouse Mice have pointy noses. 66 4 25 ∞ no Cat Cats are mammals with whiskers. 22
  • 83.
    Reverse-merge revision 23,creating revision 25 Article ID Ver. VSR VBR Del? Name Text 55 1 21 23 no Mouse Mice have pointy noses. 66 1 22 23 no Cat Cats are mammals. 77 1 22 24 no Dog Dogs smell funny. 55 2 23 ∞ no Mouse Mice have pointy noses that wiggle. 66 2 23 24 no Cat Cats are cute mammals. 66 3 24 ∞ no Cat Cats are cute mammals with whiskers. 77 2 24 ∞ yes — — 55 3 25 ∞ no Mouse Mice have pointy noses. 66 4 25 ∞ no Cat Cats are mammals with whiskers. 22
  • 84.
    Reverse-merge revision 23,creating revision 25 Article ID Ver. VSR VBR Del? Name Text 55 1 21 23 no Mouse Mice have pointy noses. 66 1 22 23 no Cat Cats are mammals. 77 1 22 24 no Dog Dogs smell funny. 55 2 23 ∞ no Mouse Mice have pointy noses that wiggle. 66 2 23 24 no Cat Cats are cute mammals. 66 3 24 ∞ no Cat Cats are cute mammals with whiskers. 77 2 24 ∞ yes — — 55 3 25 ∞ no Mouse Mice have pointy noses. 66 4 25 ∞ no Cat Cats are mammals with whiskers. 22
  • 85.
    Reverse-merge revision 23,creating revision 25 Article ID Ver. VSR VBR Del? Name Text 55 1 21 23 no Mouse Mice have pointy noses. 66 1 22 23 no Cat Cats are mammals. 77 1 22 24 no Dog Dogs smell funny. 55 2 23 ∞ no Mouse Mice have pointy noses that wiggle. 66 2 23 24 no Cat Cats are cute mammals. 66 3 24 ∞ no Cat Cats are cute mammals with whiskers. 77 2 24 ∞ yes — — 55 3 25 ∞ no Mouse Mice have pointy noses. 66 4 25 ∞ no Cat Cats are mammals with whiskers. 22
  • 86.
    Reverse-merge revision 23,creating revision 25 Article remove that wiggle ID Ver. VSR VBR Del? Name Text 55 1 21 23 no Mouse Mice have pointy noses. 66 1 22 23 no Cat Cats are mammals. 77 1 22 24 no Dog Dogs smell funny. 55 2 23 ∞ no Mouse Mice have pointy noses that wiggle. 66 2 23 24 no Cat Cats are cute mammals. 66 3 24 ∞ no Cat Cats are cute mammals with whiskers. 77 2 24 ∞ yes — — 55 3 25 ∞ no Mouse Mice have pointy noses. 66 4 25 ∞ no Cat Cats are mammals with whiskers. 22
  • 87.
    Reverse-merge revision 23,creating revision 25 Article remove that wiggle ID Ver. VSR VBR Del? Name Text 55 1 21 23 no Mouse Mice have pointy noses. 66 1 22 23 no Cat Cats are mammals. 77 1 22 24 no Dog Dogs smell funny. 55 2 23 ∞ no Mouse Mice have pointy noses that wiggle. 66 2 23 24 no Cat Cats are cute mammals. 66 3 24 ∞ no Cat Cats are cute mammals with whiskers. 77 2 24 ∞ yes — — 55 3 25 ∞ no Mouse Mice have pointy noses. 66 4 25 ∞ no Cat Cats are mammals with whiskers. 22
  • 88.
    Reverse-merge revision 23,creating revision 25 Article remove that wiggle ID Ver. VSR VBR Del? Name Text 55 1 21 23 no Mouse Mice have pointy noses. 66 1 22 23 no Cat Cats are mammals. 77 1 22 24 no Dog Dogs smell funny. 55 2 23 ∞ no Mouse Mice have pointy noses that wiggle. 66 2 23 24 no Cat Cats are cute mammals. 66 3 24 ∞ no Cat Cats are cute mammals with whiskers. 77 2 24 ∞ yes — — 55 3 25 ∞ no Mouse Mice have pointy noses. 66 4 25 ∞ no Cat Cats are mammals with whiskers. 22
  • 89.
    Reverse-merge revision 23,creating revision 25 Article ID Ver. VSR VBR Del? Name Text 55 1 21 23 no Mouse Mice have pointy noses. 66 1 22 23 no Cat Cats are mammals. 77 1 22 24 no Dog Dogs smell funny. 55 2 23 ∞ no Mouse Mice have pointy noses that wiggle. 66 2 23 24 no Cat Cats are cute mammals. 66 3 24 ∞ no Cat Cats are cute mammals with whiskers. 77 2 24 ∞ yes — — 55 3 25 ∞ no Mouse Mice have pointy noses. 66 4 25 ∞ no Cat Cats are mammals with whiskers. 22
  • 90.
    Reverse-merge revision 23,creating revision 25 Article ID Ver. VSR VBR Del? Name Text 55 1 21 23 no Mouse Mice have pointy noses. 66 1 22 23 no Cat Cats are mammals. 77 1 22 24 no Dog Dogs smell funny. 55 2 23 ∞ no Mouse Mice have pointy noses that wiggle. 66 2 23 24 no Cat Cats are cute mammals. 66 3 24 ∞ no Cat Cats are cute mammals with whiskers. 77 2 24 ∞ yes — — 55 3 25 ∞ no Mouse Mice have pointy noses. 66 4 25 ∞ no Cat Cats are mammals with whiskers. 22
  • 91.
    Reverse-merge revision 23,creating revision 25 remove cute Article ID Ver. VSR VBR Del? Name Text 55 1 21 23 no Mouse Mice have pointy noses. 66 1 22 23 no Cat Cats are mammals. 77 1 22 24 no Dog Dogs smell funny. 55 2 23 ∞ no Mouse Mice have pointy noses that wiggle. 66 2 23 24 no Cat Cats are cute mammals. 66 3 24 ∞ no Cat Cats are cute mammals with whiskers. 77 2 24 ∞ yes — — 55 3 25 ∞ no Mouse Mice have pointy noses. 66 4 25 ∞ no Cat Cats are mammals with whiskers. 22
  • 92.
    Reverse-merge revision 23,creating revision 25 remove cute Article ID Ver. VSR VBR Del? Name Text 55 1 21 23 no Mouse Mice have pointy noses. 66 1 22 23 no Cat Cats are mammals. 77 1 22 24 no Dog Dogs smell funny. 55 2 23 ∞ no Mouse Mice have pointy noses that wiggle. 66 2 23 24 no Cat Cats are cute mammals. 66 3 24 ∞ no Cat Cats are cute mammals with whiskers. 77 2 24 ∞ yes — — 55 3 25 ∞ no Mouse Mice have pointy noses. 66 4 25 ∞ no Cat Cats are mammals with whiskers. 22
  • 93.
    Reverse-merge revision 23,creating revision 25 remove cute Article ID Ver. VSR VBR Del? Name Text 55 1 21 23 no Mouse Mice have pointy noses. 66 1 22 23 no Cat Cats are mammals. 77 1 22 24 no Dog Dogs smell funny. 55 2 23 ∞ no Mouse Mice have pointy noses that wiggle. 66 2 23 24 no Cat Cats are cute mammals. 66 3 24 ∞ no Cat Cats are cute mammals with whiskers. 77 2 24 ∞ yes — — 55 3 25 ∞ no Mouse Mice have pointy noses. 66 4 25 ∞ no Cat Cats are mammals with whiskers. 22
  • 94.
    Reverse-merge revision 23,creating revision 25 Article ID Ver. VSR VBR Del? Name Text 55 1 21 23 no Mouse Mice have pointy noses. 66 1 22 23 no Cat Cats are mammals. 77 1 22 24 no Dog Dogs smell funny. 55 2 23 ∞ no Mouse Mice have pointy noses that wiggle. 66 2 23 24 no Cat Cats are cute mammals. 66 3 24 ∞ no Cat Cats are cute mammals with whiskers. 77 2 24 ∞ yes — — 55 3 25 ∞ no Mouse Mice have pointy noses. 66 4 25 ∞ no Cat Cats are mammals with whiskers. 22
  • 95.
    Reverse-merge revision 23,creating revision 25 Article ID Ver. VSR VBR Del? Name Text 55 1 21 23 no Mouse Mice have pointy noses. 66 1 22 23 no Cat Cats are mammals. 77 1 22 24 no Dog Dogs smell funny. 55 2 23 ∞ 25 no Mouse Mice have pointy noses that wiggle. 66 2 23 24 no Cat Cats are cute mammals. 66 3 24 ∞ 25 no Cat Cats are cute mammals with whiskers. 77 2 24 ∞ yes — — 55 3 25 ∞ no Mouse Mice have pointy noses. 66 4 25 ∞ no Cat Cats are mammals with whiskers. 22
  • 96.
    Reverse-merge revision 23,creating revision 25 Article ID Ver. VSR VBR Del? Name Text 55 1 21 23 no Mouse Mice have pointy noses. 66 1 22 23 no Cat Cats are mammals. 77 1 22 24 no Dog Dogs smell funny. 55 2 23 ∞ 25 no Mouse Mice have pointy noses that wiggle. 66 2 23 24 no Cat Cats are cute mammals. 66 3 24 ∞ 25 no Cat Cats are cute mammals with whiskers. 77 2 24 ∞ yes — — 55 3 25 ∞ no Mouse Mice have pointy noses. 66 4 25 ∞ no Cat Cats are mammals with whiskers. 22 (see paper & backup slides for revert)
  • 97.
    undoing under globalstate management Keep “undo that is undone = no-op” Generally: More complicated because the data is more complex ... see paper for details ... (Cyclopath does not do reverse-merge) But, no big deal 23
  • 98.
    the point Now we have global state management. but: unit of access control = unit of revision (i.e., the whole database); too coarse. 24
  • 99.
    talk outline Wiki 1.0 – per-object state ✓ Wikipedia, et al. + fine-grained access control Wiki 2.0 + global state ✓ Cyclopath now – no fine-grained access control Wiki 3.0 + global state Cyclopath future + fine-grained access control 25
  • 100.
    talk outline Wiki 1.0 – per-object state ✓ Wikipedia, et al. + fine-grained access control Wiki 2.0 + global state ✓ Cyclopath now – no fine-grained access control Wiki 3.0 + global state Cyclopath future + fine-grained access control ‣ unit of access control < unit of revision ‣ meta access control 25
  • 101.
    problem: undo Article ID Ver. VSR VBR Del? Name Text 55 1 21 23 no Mouse Mice have pointy noses. 66 1 22 23 no Cat Cats are mammals. 77 1 22 24 no Dog Dogs smell funny. 55 2 23 ∞ no Mouse Mice have pointy noses that wiggle. 66 2 23 24 no Cat Cats are cute mammals. 66 3 24 ∞ no Cat Cats are cute mammals with whiskers. 77 2 24 ∞ yes — — 26
  • 102.
    problem: undo Article ID Ver. VSR VBR Del? Name Text 55 1 21 23 no Mouse Mice have pointy noses. 66 1 22 23 no Cat Cats are mammals. 77 1 22 24 no Dog Dogs smell funny. 55 2 23 ∞ no Mouse Mice have pointy noses that wiggle. 66 2 23 24 no Cat Cats are cute mammals. 66 3 24 ∞ no Cat Cats are cute mammals with whiskers. 77 2 24 ∞ yes — — 26
  • 103.
    problem: undo Felipe can edit “Cat” and “Mouse” → no problem Article ID Ver. VSR VBR Del? Name Text 55 1 21 23 no Mouse Mice have pointy noses. 66 1 22 23 no Cat Cats are mammals. 77 1 22 24 no Dog Dogs smell funny. 55 2 23 ∞ no Mouse Mice have pointy noses that wiggle. 66 2 23 24 no Cat Cats are cute mammals. 66 3 24 ∞ no Cat Cats are cute mammals with whiskers. 77 2 24 ∞ yes — — 26
  • 104.
    problem: undo Felipe can edit “Cat” and “Mouse” → no problem Andrea can edit “Cat” but not “Mouse” → problem Article ID Ver. VSR VBR Del? Name Text 55 1 21 23 no Mouse Mice have pointy noses. 66 1 22 23 no Cat Cats are mammals. 77 1 22 24 no Dog Dogs smell funny. 55 2 23 ∞ no Mouse Mice have pointy noses that wiggle. 66 2 23 24 no Cat Cats are cute mammals. 66 3 24 ∞ no Cat Cats are cute mammals with whiskers. 77 2 24 ∞ yes — — 26
  • 105.
    problem: undo Felipe can edit “Cat” and “Mouse” → no problem Andrea can edit “Cat” but not “Mouse” → problem Article ID Ver. VSR VBR Del? Name Text 55 1 21 23 no Mouse Mice have pointy noses. 66 1 22 23 no Cat Cats are mammals. 77 1 22 24 no Dog Dogs smell funny. 55 2 23 ∞ no Mouse Mice have pointy noses that wiggle. 66 2 23 24 no Cat Cats are cute mammals. 66 3 24 ∞ no Cat Cats are cute mammals with whiskers. 77 2 24 ∞ yes — — Solution: partial undo 26
  • 106.
    problem: undo Felipe can edit “Cat” and “Mouse” → no problem Andrea can edit “Cat” but not “Mouse” → problem Article ID Ver. VSR VBR Del? Name Text 55 1 21 23 no Mouse Mice have pointy noses. 66 1 22 23 no Cat Cats are mammals. 77 1 22 24 no Dog Dogs smell funny. 55 2 23 ∞ no Mouse Mice have pointy noses that wiggle. 66 2 23 24 no Cat Cats are cute mammals. 66 3 24 ∞ no Cat Cats are cute mammals with whiskers. 77 2 24 ∞ yes — — Solution: partial undo 26 Andrea reverts just “Cat”
  • 107.
    partial undo toenable unit of access control < unit of revision Old: Undo entire revision or nothing at all New: Undo only part of a revision ... i.e., undo changes to objects I have access to Keep: “undo that is undone = no-op” ... iff second undo is a complete undo Need UI support to reduce confusion ... e.g., warn if introducing potential for partial undo ... e.g., special “completify undo” operation 27
  • 108.
    meta access control i.e., constraints on access control lists 28
  • 109.
    use cases fromCyclopath Public base map ... edges of transportation network must be public Private watch regions ... regions can be public or private Rate anything that can be seen, privately ... force ratings to be private ... allow rating anything, even if can’t edit other attributes Shared private layers ... force objects to have same permissions as the layer 29
  • 110.
    implementation overview Databases + recursion = ☹ ... i.e., best to make access decision with just one lookup Each Cyclopath object has 4 ACLs ... viewing, searching, editing, changing access ... implemented w/ standard optimizations That’s basic access control Meta access control gives rules defining valid ACL content 30 basic/meta model from Dewan & Shen, 1998
  • 111.
    the point Withpartial undo and both basic & meta access control, wikis can implement both global state management and fine-grained access control. 31
  • 112.
    talk outline Wiki 1.0 – per-object state ✓ Wikipedia, et al. + fine-grained access control Wiki 2.0 + global state ✓ Cyclopath now – no fine-grained access control Wiki 3.0 + global state ✓ Cyclopath future + fine-grained access control 32
  • 113.
    I’ve described waysto make wikis less simple and less open. Have we lost the spirit of the wiki model? 33
  • 114.
    The 3 fundamentalproperties of the wiki model 34
  • 115.
    The 3 fundamentalproperties of the wiki model 1. Inverted publishing model ... review after publication, not before 34
  • 116.
    The 3 fundamentalproperties of the wiki model 1. Inverted publishing model ... review after publication, not before 2. Maximally open access ... whenever reasonable, anyone can change anything ... minimize e.g. unfriendly UI, unfriendly culture 34
  • 117.
    The 3 fundamentalproperties of the wiki model 1. Inverted publishing model ... review after publication, not before 2. Maximally open access ... whenever reasonable, anyone can change anything ... minimize e.g. unfriendly UI, unfriendly culture 3. Transparent changes ... everyone can see who is changing what ... recent changes lists, watching, diffing ... enables meta-work (notably, undoing bad edits) 34
  • 118.
    the point Our radical new collaboration model, the wiki, has great promise in many domains. Why limit ourselves to relatively unstructured data or contexts with simple access control needs? 35
  • 119.
    the end Reid Priedhorskyand Loren Terveen reid@reidster.net http://reidster.net/research/
  • 120.
  • 121.
  • 122.
    Cyclopath revisions in example: 26edges, 9 notes of 13k revisions: 60% alter graph 65% alter >1 object 37
  • 123.
    Reverting revision 2of article “Cat” Article Name Ver. Text Cat 1 Cats are mammals. Cat 2 Cats are cute mammals. Mouse 1 Mice have pointy noses. Cat 3 Cats are cute mammals with whiskers. Mouse 2 Mice have pointy noses that wiggle. Cat 4 Cats are mammals. 38
  • 124.
    Reverting revision 2of article “Cat” Article Name Ver. Text Cat 1 Cats are mammals. Cat 2 Cats are cute mammals. Mouse 1 Mice have pointy noses. Cat 3 Cats are cute mammals with whiskers. Mouse 2 Mice have pointy noses that wiggle. Cat 4 Cats are mammals. 38
  • 125.
    Reverting revision 2of article “Cat” Article Name Ver. Text Cat 1 Cats are mammals. Cat 2 Cats are cute mammals. Mouse 1 Mice have pointy noses. Cat 3 Cats are cute mammals with whiskers. Mouse 2 Mice have pointy noses that wiggle. Cat 4 Cats are mammals. 38
  • 126.
    Reverting revision 2of article “Cat” Article Name Ver. Text Cat 1 Cats are mammals. Cat 2 Cats are cute mammals. Mouse 1 Mice have pointy noses. Cat 3 Cats are cute mammals with whiskers. Mouse 2 Mice have pointy noses that wiggle. Cat 4 Cats are mammals. 38
  • 127.
    Reverting revision 2of article “Cat” Article Name Ver. Text Cat 1 Cats are mammals. Cat 2 Cats are cute mammals. Mouse 1 Mice have pointy noses. Cat 3 Cats are cute mammals with whiskers. Mouse 2 Mice have pointy noses that wiggle. Cat 4 Cats are mammals. 38
  • 128.
    Reverting revision 2of article “Cat” Article Name Ver. Text Cat 1 Cats are mammals. Cat 2 Cats are cute mammals. Mouse 1 Mice have pointy noses. Cat 3 Cats are cute mammals with whiskers. Mouse 2 Mice have pointy noses that wiggle. Cat 4 Cats are mammals. 38
  • 129.
    Reverting revision 2of article “Cat” Article Name Ver. Text Cat 1 Cats are mammals. Cat 2 Cats are cute mammals. Mouse 1 Mice have pointy noses. Cat 3 Cats are cute mammals with whiskers. Mouse 2 Mice have pointy noses that wiggle. Cat 4 Cats are mammals. 38
  • 130.
    Reverting revision 23,creating revision 25 Article ID Ver. VSR VBR Del? Name Text 55 1 21 23 no Mouse Mice have pointy noses. 66 1 22 23 no Cat Cats are mammals. 77 1 22 24 no Dog Dogs smell funny. 55 2 23 ∞ no Mouse Mice have pointy noses that wiggle. 66 2 23 24 no Cat Cats are cute mammals. 66 3 24 ∞ no Cat Cats are cute mammals with whiskers. 77 2 24 ∞ yes — — 55 3 25 ∞ no Mouse Mice have pointy noses. 66 4 25 ∞ no Cat Cats are mammals. 39
  • 131.
    Reverting revision 23,creating revision 25 Article ID Ver. VSR VBR Del? Name Text 55 1 21 23 no Mouse Mice have pointy noses. 66 1 22 23 no Cat Cats are mammals. 77 1 22 24 no Dog Dogs smell funny. 55 2 23 ∞ no Mouse Mice have pointy noses that wiggle. 66 2 23 24 no Cat Cats are cute mammals. 66 3 24 ∞ no Cat Cats are cute mammals with whiskers. 77 2 24 ∞ yes — — 55 3 25 ∞ no Mouse Mice have pointy noses. 66 4 25 ∞ no Cat Cats are mammals. 39
  • 132.
    Reverting revision 23,creating revision 25 Article ID Ver. VSR VBR Del? Name Text 55 1 21 23 no Mouse Mice have pointy noses. 66 1 22 23 no Cat Cats are mammals. 77 1 22 24 no Dog Dogs smell funny. 55 2 23 ∞ no Mouse Mice have pointy noses that wiggle. 66 2 23 24 no Cat Cats are cute mammals. 66 3 24 ∞ no Cat Cats are cute mammals with whiskers. 77 2 24 ∞ yes — — 55 3 25 ∞ no Mouse Mice have pointy noses. 66 4 25 ∞ no Cat Cats are mammals. 39
  • 133.
    Reverting revision 23,creating revision 25 Article ID Ver. VSR VBR Del? Name Text 55 1 21 23 no Mouse Mice have pointy noses. 66 1 22 23 no Cat Cats are mammals. 77 1 22 24 no Dog Dogs smell funny. 55 2 23 ∞ no Mouse Mice have pointy noses that wiggle. 66 2 23 24 no Cat Cats are cute mammals. 66 3 24 ∞ no Cat Cats are cute mammals with whiskers. 77 2 24 ∞ yes — — 55 3 25 ∞ no Mouse Mice have pointy noses. 66 4 25 ∞ no Cat Cats are mammals. 39
  • 134.
    Reverting revision 23,creating revision 25 Article ID Ver. VSR VBR Del? Name Text 55 1 21 23 no Mouse Mice have pointy noses. 66 1 22 23 no Cat Cats are mammals. 77 1 22 24 no Dog Dogs smell funny. 55 2 23 ∞ no Mouse Mice have pointy noses that wiggle. 66 2 23 24 no Cat Cats are cute mammals. 66 3 24 ∞ no Cat Cats are cute mammals with whiskers. 77 2 24 ∞ yes — — 55 3 25 ∞ no Mouse Mice have pointy noses. 66 4 25 ∞ no Cat Cats are mammals. 39
  • 135.
    Reverting revision 23,creating revision 25 Article ID Ver. VSR VBR Del? Name Text 55 1 21 23 no Mouse Mice have pointy noses. 66 1 22 23 no Cat Cats are mammals. 77 1 22 24 no Dog Dogs smell funny. 55 2 23 ∞ no Mouse Mice have pointy noses that wiggle. 66 2 23 24 no Cat Cats are cute mammals. 66 3 24 ∞ no Cat Cats are cute mammals with whiskers. 77 2 24 ∞ yes — — 55 3 25 ∞ no Mouse Mice have pointy noses. 66 4 25 ∞ no Cat Cats are mammals. 39
  • 136.
    Reverting revision 23,creating revision 25 Article ID Ver. VSR VBR Del? Name Text 55 1 21 23 no Mouse Mice have pointy noses. 66 1 22 23 no Cat Cats are mammals. 77 1 22 24 no Dog Dogs smell funny. 55 2 23 ∞ 25 no Mouse Mice have pointy noses that wiggle. 66 2 23 24 no Cat Cats are cute mammals. 66 3 24 ∞ 25 no Cat Cats are cute mammals with whiskers. 77 2 24 ∞ yes — — 55 3 25 ∞ no Mouse Mice have pointy noses. 66 4 25 ∞ no Cat Cats are mammals. 39