The document discusses the evolution of wikis from Wiki 1.0, which had independent objects and fine-grained access control but no global state, to Wiki 3.0, which aims to have both global state and fine-grained access control. It presents a data model used by the software Cyclopath that tracks revisions at the level of the entire database rather than individual objects. This allows editing history to be maintained across multiple articles and for revisions to atomically change multiple objects.
1. 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
2. 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
8. why I’m here
3 objects
doing both is hard
private object
‣ratings
‣shared layers
3
9. it’s hard because of undo
Felipe can edit objects A and B
Andrea can edit object A but not B
4
10. 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
11. 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
12. 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
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 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
20. 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
21. 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
22. 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
23. 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
24. 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
25. 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
26. 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
29. three ways to undo work in wikis
1. Manual editing
9
30. 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
31. 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
32. 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
33. 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
34. 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
35. 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
36. 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
37. 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
38. 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
39. 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
40. 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
42. 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
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
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 of three articles
Article
ID Ver. VSR VBR Del? Name Text
16
50. Editing history of three articles
Article
ID Ver. VSR VBR Del? Name Text
identifier (integer)
16
51. Editing history of three articles
Article
ID Ver. VSR VBR Del? Name Text
version (integer)
16
52. Editing history of three articles
“valid before revision”
Article
ID Ver. VSR VBR Del? Name Text
“valid starting revision”
16
53. Editing history of three articles
Article
ID Ver. VSR VBR Del? Name Text
deleted flag (boolean)
16
54. 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
55. 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
56. 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
57. 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
58. 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
59. 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
60. 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
61. 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
62. 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
63. 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
64. 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
65. 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
66. 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
67. 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
68. 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
69. 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
70. 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
71. 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
72. 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
73. 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
74. 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
75. 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
76. 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
77. 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
78. 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
79. 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
80. 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
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 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
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 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
109. 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
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
With partial 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 ways to make wikis
less simple and less open.
Have we lost the spirit of the wiki model?
33
115. The 3 fundamental properties of the wiki model
1. Inverted publishing model
... review after publication, not before
34
116. 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
117. 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
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
123. 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
124. 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
125. 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
126. 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
127. 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
128. 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
129. 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
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