Glass Plate Game

One of the hits from last month’s RecentChangesCamp was Dunbar Aitkens‘s Glass Plate Game. Inspired by Herman Hesse‘s Glass Bead Game, the Glass Plate Game stimulates interesting conversations, encouraging and capturing connections between different ideas that are raised. There are no winners or losers. The game serves as a facilitative device, encouraging civil dialog and learning, and in the end, you have an artifact from which you can transcribe the conversation.    (K9X)

https://i2.wp.com/static.flickr.com/38/95674441_357009e2cf_m.jpg?w=700    (K9Y)

The game consists of a set of cards (which you can create yourself) that represent a number of different themes. There are also 24 wooden blocks, sequentially numbered, that each represents a “move” and the state of conversation. There are four possible states: “P” (permit the latest connection), “C” (challenge the latest connection), “O” (mutual understanding; move on to the next move), and “blank” (no resolution; move on to the next move). There are also several colored, translucent pieces of plastic that you use to make connections.    (K9Z)

To start the game, someone picks a theme by placing the first piece and a piece of plastic on a card. Each move after that represents a connection between two themes (cards). You make a connection by placing a piece on another card and a piece of plastic whose color matches the plastic on a previous card. Once a connection is made, you have a conversation, turning the cube around throughout to represent the state of the conversation. Once the cube is on “O” or “blank,” someone makes a new move/connection. The game continues until you reach the 24th move or until no one has anything to say. At that point, you are encouraged to transcribe the conversation, using the game board as a memory device.    (KA0)

https://i0.wp.com/static.flickr.com/55/106395322_417512d869_m.jpg?w=700    (KA1)

I actually didn’t get to play at RecentChangesCamp — I kept getting pulled away by other things. I regretted it even more after the conference, because on the car ride up to Seattle, Michael Herman and Ted Ernst were saying really intriguing things about it. Fortunately, Dunbar lives in Corvallis, and on my way back from RecentChangesCamp and Seattle, John Sechrest graciously hosted dinner and a game.    (KA2)

https://i0.wp.com/static.flickr.com/36/106395321_9814c0d446_m.jpg?w=700    (KA3)

I think the concept is brilliant, and judging by the number of folks who played it at RecentChangesCamp and ordered a set for themselves, I’m not alone. I plan on hosting salons to play the game and to contribute to Dunbar’s compilations of transcripts (part of his bigger vision to transcribe a global, distributed Glass Plate Game).    (KA4)

I also think the Glass Plate Game could be a powerful device at face-to-face gatherings. The facilitative principles are similar to those espoused by Dialogue Mapping in that there is a grammar and that Shared Display is a big reason for its effectiveness. MGTaylor uses the principles of Glass Bead Game to great effect in their process. One of the best instantiations of the game I’ve seen was when I first worked with Gail Taylor at the 2003 Planetwork Conference. Each breakout group gets a white, 2’x2’x2′ cardboard box, and they are encouraged to capture their ideas on one or more side. In the report-out, the groups are encouraged to make connections with each other by positioning or stacking their boxes next to each other. It’s a great device that works really well.    (KA5)

In particular, I think the game could work really well with World Cafe. Instead of (or in addition to) butcher paper, crafts, and the other typical devices used for capture, you could setup Glass Plate Game at each table. I’m looking forward to experimenting with this possibility.    (KA6)

PurpleSlurpled Eastern Standard Tribe

The Purple Numbers meme continues to spread, this time thanks to Cory Doctorow, Trevor Smith, and our own Matt Schneider. Trevor created a version of Cory’s new book, Eastern Standard Tribe, with Purple Numbers using Matt’s PurpleSlurple. (As announced on Cory’s blog. Spotted by John Sechrest.)    (123)

Transclusions, Path-Based Addressing, and Version Control

The PurpleWiki community has been rumbling recently, thanks largely to the contributions of two members of the Canonical Hackers, Jason Cook and Matthew O’Connor. Jason wrote perplog, an IRC logger that supports Purple Numbers and Transclusions. Matthew hacked a PurpleWiki node manager, then started adding and fixing other stuff, including an XML-RPC interface. Additionally, John Sechrest developed an experimental email interface to PurpleWiki. Lots of great stuff. It’s forcing us to get off our butts and make some long-promised changes and explain some long-undocumented things. Open Source is a wonderful thing.    (117)

A lot of the excitement is because of PurpleWiki‘s support for Transclusions. We had Transclusions in mind when we architected PurpleWiki, but we (or I, at least) didn’t think Transclusions would actually be implemented until much later. However, exactly one year ago today, Chris Dent got the itch and started playing. A few months later, Chris committed some code, and suddenly, we had Transclusions. It was a total hack, but it worked, and it was unexpectedly cool.    (118)

It’s still a hack, and it needs to be cleaned up, but it’s suddenly become a higher priority. First, we have a pretty good idea of how to support Transclusions “correctly.” Second, having had the chance to use Transclusions regularly, we are starting to recognize their utility and want to take greater advantage of that. (See, for example, my early specs for Abelard.) Third, people are starting to get excited about them.    (119)

Transcluding Multiple Chunks    (11A)

Currently, we support Transclusions of individual nodes (paragraphs, headers, list items, etc.) via the following syntax:    (11B)

  [t nid]    (11C)

where nid is the ID of the node you want to transclude. This works fine when you want to transclude small chunks, but at times, it’s useful to be able to transclude multiple chunks on a page. Rather than specify a transclusion for each individual node, it would be nice to have a syntax for specifying a collection of nodes in a single transclusion.    (11D)

Chris proposed the following syntax:    (11E)

  [t nid,nid,nid,...]    (11F)

This is problematic. The current implementation suggests that the transclusion command be replaced by the content identified by the specified NID. This proposal suggests that the command be replaced by both the content and the structure of the content. If you had a document like:    (11G)

  = Plan for World Domination {nid 1} =    (11H)
  # Finish PurpleWiki. {nid 2}    (11I)

and you tried to transclude this content with:    (11J)

  * [t 1, 2]    (11K)

what is the parser supposed to translate this to?    (11L)

A proper solution must be treated as its own structural element within a PurpleWiki document. More importantly, the syntax should capture document-specific context. This contrasts with the current syntax, which ignores document context entirely.    (11M)

Why is document context important? Suppose you have the following task list:    (11N)

  = To Do {nid 3} =    (11O)
  * Buy milk. {nid 4}   * Feed iguana. {nid 5}   * Implement distributed Transclusions. {nid 6}   * Vote in primaries. {nid 7}   * Expose API to Backlinks. {nid 8}    (11P)

Suppose you want to start a PurpleWiki-specific task list, transcluding all of the list items relevant to PurpleWiki (in this case, nodes 6 and 8). The resulting document might look like:    (11Q)

  {title PurpleWikiToDo}    (11R)
  = PurpleWiki To Do {nid 9} =    (11S)
  * [t 6] {nid A}   * [t 8] {nid B}    (11T)

Now, suppose you want to replicate this task list on another page. You could transclude all of the items individually, just as you do on the PurpleWiki To Do page. In this case, a slight variation of Chris’s proposed syntax (a standalone structural element) would simplify that process. (It also raises an interesting question: Which NIDs do you use for the transclusions: 6 and 8, or A and B? Does it make a difference?)    (11U)

However, what I really want to do is say, “Transclude all of the list items on the ‘PurpleWiki To Do’ page.” For this, you want something like XPointer:    (11V)

  [transclude PurpleWikiToDo#xpointer(id("9")/li)]    (11W)

A few observations: First, the command should be on a line by itself, and it should be interpreted as an independent structural element that will be replaced by a set of structural elements and content. I used “transclude” instead of “t” to make the point that these are two different commands. Second, the Transclusion command specifies a range of nodes within a document, as opposed to a document-independent list of nodes. Third, this combines a path-based address with an ID-based address.    (11X)

Fourth (and this is an implementation detail), if we want to support such syntax, it would behoove us to use an XML data model rather than the home grown model we’re currently using. This way, we could easily plug in existing XPointer implementations to do the queries.    (11Y)

Version Control    (11Z)

The fact that Wiki pages are dynamic throws a kink into all of this. The syntax I propose above takes this into account for the most part. Barring major changes to the PurpleWiki To Do page, the transcluded content will include all of the PurpleWiki tasks, even if more items are added later. If you had to list a set of NIDs, then you would have to be diligent about updating that list manually every time the To Do page changed.    (120)

In addition to supporting path-based addressing, we also need to allow people to specify versions in the address. In other words, you may want to transclude a specific version of a node or a set of nodes from a specific version of a document.    (121)

This shouldn’t be too difficult, but there are some complications. The biggie is whether to transclude a node if the node no longer exists in any document. My instinct right now is telling me that yes, it should, but it should make it clear somehow that it’s an orphan node. (See my previous entry on link integrity for more on this.)    (122)

Dialog Mapping Use Cases

The Compendium Dialogue Mapping tool came up in conversation on the Collaboration Collaboratory. In the course of the discussion, I explained that I use Compendium for three purposes:    (XW)

  • Personal note-taking.    (XX)
  • Taking shared notes during meetings.    (XY)
  • Facilitating face-to-face group meetings.    (XZ)

John Sechrest asked in response:    (Y0)

I have a client come in. We talk about what? And that causes what to show up on the compendium screen?    (Y1)

Specifically, what is the social process that compendium is facilitating?    (Y2)

And how is that different than just writing an outline in an editor?    (Y3)

I mean different things by taking notes on a Shared Display versus facilitating group meetings, so I’ll treat them separately in answering John’s questions.    (Y4)

There are three advantages to taking shared notes real-time. First, you know that a record is being kept of the meeting, which is reassuring. Second, you know that the notes are immediately available. Third, you have the chance to validate the notes as they are being taken.    (Y5)

Taking notes on a Shared Display is a great pattern, regardless of the tool you use. In fact, using a Wiki or a program like SubEthaEdit instead of Compendium may be more valuable in some ways because the note-taking can be collective. When I use Compendium to do this, only I can edit the notes.    (Y6)

The advantage that Compendium has over these other tools is the graphical IBIS grammar. IBIS (which can be expressed as a text outline) is slightly more semantically rigorous and slightly more compact than an outline. Graphical IBIS is superior to a textual outline, because the second dimension serves an additional reference for finding what you’re looking for.    (Y7)

Another advantage of the IBIS grammar is that it encourages, even forces participants to consider the underlying questions (a precursor to the Left-Hand Move pattern). This really comes through in facilitated meetings (with facilitators who are trained in Dialogue Mapping).    (Y8)

The most important thing Dialogue Mapping does in a facilitation context is depoliticize discussion. Dialogue Mapping focuses attention on ideas rather than on people by making sure that all ideas are captured and captured anonymously.    (Y9)

Jeff Conklin, the man responsible for graphical IBIS and Dialogue Mapping, has written a book on Dialogue Mapping that does a great job of explaining how it’s best used as well as the underlying theory. I’m not sure if the book is available yet, but I’ll check. In the meantime, I highly recommend Jeff’s Dialog Mapping workshops. I wrote an article a few years back describing one of these workshops.    (YA)

Sheldon Chang’s SocialWave Blog

Sheldon Chang, a member of our Collaboration Collaboratory, recently announced a new blog: SocialWeaver: Building Real Communities Online. Sheldon has a startup called SocialWave that builds online communities as a way to strengthen communities within neighborhoods. He’s thought quite a bit about community-building in general and has a lot of interesting things to say, which is why I’m very glad to see him join the blogosphere.    (W1)

In his first post, “A Real Model for the Virtual Community,” Sheldon suggests that people must feel comfortable to build their online identities in order for an online community to be successful. This requirement prevents effective online communities from truly scaling.    (W2)

Sheldon’s blog entry generated some discussion in the collaboratory. John Sechrest discussed latent energy in forums, emphasizing the role that lurkers play in the effectiveness of an online community. He also posed and elaborated a theory of group size: The maximum size of a manageable community is 256 people. (Ross Mayfield described a more scientific theory of group size, based on Robin Dunbar’s research, at his talk last November.)    (W3)