Difference bridge - Abstract

    Full text: http://reluk.ca/w/User:Mike-ZeleaCom/G/p/de

The difference bridge is a text comparison facility for deliberative
democracy.  It puts backbone into online deliberations by grounding
them in concrete differences of position.  It works in conjunction
with peer-to-peer voting and drafting facilities, wherein the
positions of voter and candidate are already formalized as text
documents.  In this setup, disagreements and misunderstandings are
easily visualized as differences of text.  The difference bridge goes
a step farther in allowing any particular difference to be referenced
by a web link, suitable for embedding in an online discussion.
Participants may follow the link in order to summon a precise, stable
view of the difference.  Thus deliberations are formally anchored, at
points, to the objects under discussion.  Additional features of the
difference bridge allow for locating other discussions of the same
object across multiple forums; tracking the number of co-voters who
share the same particular difference; and resolving differences by
text merger.^[1]

                      (you need a fixed width font to see the diagram)


                          +-------------+
                          | Vote-server |
                          +-------------+
                                |
                              ^ | 1.1: getPositionURL( poll, user1 )
                              | |
                                | 1.2: getPositionURL( poll, user2 )
                                |
                                |
                                |         1.3: getText( url1, rev1 )
                          ##############
                          #            #  1.4: getText( url2, rev2 )
                          # Difference #______
                          # Bridge     #      |
                          #            #     ||
                          ##############     v|
                                |             |
       1: showDifference( poll, |^            |
          user1, rev1,          ||            |
          user2, rev2, frag)    |             |
   O                            |        +----------+
  -|- _________________________/ \       | Drafting |
   |   participant             \ /       | Medium   |
  / \                           |        +----------+
                                |
                         context|
                          +------------+
                          | Discussion |
                          | Medium     |
                          +------------+


    FIG 1.  Collaboration diagram showing top-level components,
            associations, and tasks involved in binding a discussion
    to a particular difference of position.  (Source:
    http://reluk.ca/project/_/dbridge/framework.svg.)


The difference bridge is compatible, in principle, with any discussion
medium that allows for the embedding of URLs.  An example of a URL is:

  http://diff.erehwon.com/taxpol/Voter-VxCa/946/Candidate-CxCa/934#11

Following this URL from the context of a discussion (1), the
participant thereby requests a particular view from the difference
bridge (diff.erehwon.com).  The bridge reads the location of both
position documents from the vote-server (1.1, 1.2), which exposes an
API for this purpose.  It then fetches the corresponding texts from
the drafting medium (1.3, 1.4), and constructs the difference view
(FIG 2).  The main part of the view is (a) the basic difference
fragment between the two position drafts.  In this fragment, the voter
is proposing a higher tax rate than the candidate.


 (b)  <<< Voter-VxCa, rev 946     +7 CO-VOTERS with same diff: *******
      >>> Candidate-CxCa, rev 934
      - - - @@ ... @@ frag 11
        blah blah context blah
 (a)  < The tax rate is 0.60% of assessed value, per annum.
      > The tax rate is 0.55% of assessed value, per annum.
        blah blah context blah
 (c)  - - -                            merge to:  << LEFT  |  RIGHT >>
 (d)  This diff is DISCUSSED AT:
      * http://list.somewhere.com/t3645/post356
      * http://list.elsewhere.com/t87/post98
      * and so forth


    FIG 2.  Mockup of a basic difference view (a), together with
            extended features (b-d).


Also shown are several extended features, including (b) a tally of
other voters of the same candidate who are proposing the same
difference; (c) cherry-picking merge controls that allow for the
transfer of the difference in either direction; and (d) reverse links
to all known places where the difference is being discussed.^[2]

Notes:

  [1] The need for a differencing facility was first discussed in the
      Votorola mailing list.  The initial design followed from talks
      between Michael Allan and Thomas von der Elbe in October, 2009.

  [2] The extended features are not necessarily available in all
      cases.  Their implementation poses additional requirements on
      the various media.