Talk track filtering

Michael Allan mike at zelea.com
Thu Oct 18 08:21:35 EDT 2012


Hey Conseo,

My side is finally coded.  Some suggestions for your side:

Selectands
----------
The diff light is picky about selectands, so you may need to adjust
them when staging your diffs from the talk track.  Generally when
there's a default actor (pinned anchor), you should stage your diffs
with the anchor as selectand, i.e. so the anchor is unchanged when you
land on the bridge.  That's how the diff light stages them in drafts.

But it works the other way on the bridge itself.  So if you detect
you're on the bridge (look at global voc.pageJClass), then you should
probably stage them with the other author as selectand.

If you stage a diff that looks wrong to the diff light (e.g. an older
diff that the user clicked on), then the light will style the link
white in the link track, as a hint that it's unrelated to the diff
currently lit.  (You'll see what I mean.)

Nominal diffs
-------------
When you're responding to diffs staged by the light (other side of
coin), you may see NOMINAL_DIFF:
http://zelea.com/project/votorola/_/javadoc/votorola/s/gwt/stage/link/NominalDifferenceTargeter.html#NOMINAL_DIFF

For instance, you'll see it on the bridge when the user selects an
author outside of the pair shown in the diff scene (which also happens
to put you into pair filtering mode).  NOMINAL_DIFF means "latest
diff" on the server.  You need to decide whether to style your own
latest diff as selected/staged.  The simplest thing is not to do that.

If you do, then (for sake of symmetry) you must not stage that same
diff if the user clicks on it.  Instead you must stage NOMINAL_DIFF.
Specifically you would stage NOMINAL_DIFF when:

  * Nominal targeting is enabled
    http://zelea.com/project/votorola/_/javadoc/votorola/s/gwt/stage/link/NominalDifferenceTargeter.html#isEnabled()

  * Pair filtering is in effect

  * Non-anchoring author of the pair (on stage) is not the
    non-anchoring author of the scene diff, i.e. not:
    http://zelea.com/project/votorola/_/javadoc/votorola/s/gwt/stage/vote/DifferenceLight.html#sceneName()

    This matters because nominals are only used when going outside of
    the scene diff.

  * User clicks on your latest, and you think it is latest on server


So there it is...  Let me know how it works out.  I'll doc it later in
the code.

-- 
Mike


conseo said:
> Hey Mike,
> 
> > 
> > Let's document a filtering convention for the stage API.  This affects
> > both our code, and also the "actorName" problem we chatted about:
> > http://zelea.com/var/cache/irc/votorola/12-10/08
> > 
> > Here's what I propose.  This assumes a poll is staged: [1]
> > 
> > 
> >    defaultActorName [2]  actorName [3]  filter
> >    -------------------------------------------
> >    free        null      null           forest
> > 
> >                null      end            forest
> >                          candidate
> > 
> >                null      non end        branch
> >                          candidate
> 
> This has to be implemented properly next, because it needs apropriate mapping 
> to counts and the trees. We have discussed some approaches already.
> 
> >    -------------------------------------------
> >    pinned      set       default        group
> 
> This is how it works atm.
> 
> > 
> >                set       non-default    pair
> 
> This does not work yet.
> 
> > 
> > 
> > You'll probably be filtering on other properties too, but currently
> > only the actor is a mutual dependency, and only when a poll is staged
> > *and* the track is pinned.  So it's only the bottom half that we need
> > to document in the API.  But I discuss all four filters below.
> > 
> > free
> > ----
> > Here the vote track is animated and the user may explore votespace.
> > Talk lighting may be used to show the way, much as in geospace with
> > the geotrack [5].  Filtering is consistent with this.
> > 
> > (forest) Talk track shows diff messages for entire poll, i.e. entire
> > votespace forest.
> > 
> > (branch) Talk track shows messages for upstream votespace branch
> > (deep) as rooted in actor's candidate, i.e. including the candidate.
> > 
> > pinned
> > ------
> > Here the vote track is pinned to the default actor and immobile [4].
> > This happens in draft pages and the difference bridge, for instance,
> > where it allows for pair selection *instead of* exploring votespace.
> > Again, filtering is consistent with this.
> > 
> > (group) Talk track shows diff messages for default actor (pin) and
> > immediate cast relations, viz. with diffs between the pin and an
> > immediate voter, co-voter, base co-candidate, or candidate. [6]
> > 
> > (pair) Talk track shows all diff messages between the pin and actor.
> > 
> > There's probably no need to actually code any filtering for your first
> > deployment.  We only need to agree on the plan.  What do you think?
> 
> Following our structuring of the discourse in the tree form, your proposed 
> filtering shows all communication regarding the current context. Pinning 
> limits it to group level, while for browsing vote space we want to show all 
> relevant discussion on that level. So I agree. 
> 
> conseo



More information about the Votorola mailing list