Social Protocols Juan Quemada
Social ProtocolsJuan Quemada
Definitionset of rules, conventions and behavioural
patterns for human interaction
and for multimedia context management
which lead to effective and well coordinated
“technology mediated” collaboration among the members of a group
in a particular situation and with a specific goal
Modelo 1. R = {r1, r2, ..} is the set of roles played by individuals in a given collaboration.
2. C = {c1 x (m11, m12, ..), c2 x (m21, ...), ....} is the set of shared object classes with set of methods.
3. F = {c1 obj1, c2 obj2, ... } is the floor of shared objects instances.
4. State: A multimedia representation of the state which can be naturally recognized by individuals collaborating
• Examples: a visual composition, an easily recognizable sound, a specific type of vibration, etc.
5. Input Events: events enabled to users with a given role at a given state.
• Can be fired by enabled roles over the interfaces and peripherals of the collaborative system when allowed.
6. Output Events: multimedia messages send to users which uniquely identify the event occurred.
1. Usually state and output event will be integrated into a unique multimedia message which will be usually shown as an integrated context to the collaborating individuals.
7. Protocol Behaviour: The state changes and output events caused by the occurrence of input events.
1. Will determine the access rights for activating input events associated with each role at any given state of the protocol.
SlideShowOneVideo Questions
Ejemplo I • The set of roles R = {prof, student}. Modelled with two predicates prof(u) and
student(u).
• The set of classes C = {Question, Slides, Mode} where each will have the following operations
• Question: RaiseHand(user u), BringToScene(user q)
• Slides: SetSlide (int n)
• Mode: SetOneVideo(user u), SetSlideShow (user u), SetQuestions (user).
• The Floor F = {Question Q, Slides S, Mode M}.
• The explicit States = {OneVideo, SlideShow, Questions}
• Input Events. defined by the first line of the transitions of the automaton.
• Output Events. Multimedia messages incorporated to multimedia context defined by the state.
• Protocol Behaviour. The precise behaviour is defined by the automaton in next slide.
Figure 2
SlideShowOneVideo Questions
T2 = MoveSlide (user u, int n) if (prof(u)) S.SetSlide (n)
T5 = RaiseHand (user u) Q.RaiseHand (u)
T1 = SlideShow (user u) if (prof(u)) M.SetSlideShow (u)
T4 = OneVideo (user u) if (prof(u)) M.SetOneVideo (u)
T3 = Questions (user u) if (prof(u)) M.SetQuestions (u)
T1 = ...........
T3 = .......
T6 = SelectQuestion (user u, q) if (prof(u)) Q.BringToScene (q)
SlideShow
Questions
OneVideo
Figure 3
Questions with person asking
Questions Layout
SlideShow Layout
OneVideo Layout
Ejemplo II • The set of roles R = {admin, user, anonymous}. Modelled with predicates
admin(u), user(u) and anonymous(u).
• The set of classes C = {Repository, Object, Comment}
• Repository: SaveObj(user u, Id i, Object o), SaveCom(user u, Id i, ic, Comment o), DeleteObj(Id i), DeleteCom(Id i), ShowRep(Id i), ShowObj(Id i), ObjForm(user u, Id i), ComForm(user u, Id i, ic), NewId(), Next(Id i),
• Object: CreateObj (title t, descr d, date d, picture p)
• Comment: CreateCom (title t, descr d, date d)
• The Floor F = {Repository R}
• The set of States = {ShowRepository, ShowObject, NewObject, NewComment, EditObject, EditComment}
• Input Events. defined by the first line of the transitions of the automaton.
• Output Events. Multimedia messages incorporated to multimedia context defined by the state.
• Protocol Behaviour. The precise behaviour is defined by the automaton in next slide.
T11 = DeleteCom (user u, id i) if (R.owner(i, u) or admin(u)) R.ShowRep ((R.DeleteCom(i)), R.next(i))
T10 = NewObj (user u) if (user(u) or admin(u)) R.ObjForm (u, R.NewId())
T8 = ShowObj (user u, id i) R.ShowObj(i)
T7 = ShowRep (user u, id i) R.ShowRep(i)
T12 = SaveObj (user u, id i, obj o) if (R.owner(i, u) or admin(u)) R.SaveObj(u,i,o).ShowRep(i);
T4 = NewCom(user u, id i) if (user(u) or admin(u)) R.ComForm(u,i)
T6 = SaveCom (user u, id i, com c) if (user(u) or admin(u)) R.SaveCom(u,i,R.NewId(),c).ShowObj(i);
T3 = EditObj (user u, id i) if (R.owner(ic, u) or admin(u)) R.ObjForm(u,i)
T5 = SaveObj (user u, id i, obj o) if (R.owner(i, u) or admin(u)) R.SaveObj(u,i,o).ShowObj(i);
T2 = EditCom (user u, id i, ic) if (R.owner(ic, u) or admin(u)) R.ComForm (u, i, ic)
T1 = SaveCom (user u, id i, ic, Com c) if (R.owner(ic, u) or admin(u)) R.SaveCom(u, i, ic, c).ShowObj(i)
T9 = ShowRep (user u, id i) R.ShowRep(i)
T11 = DeleteObj (user u, id i) if (R.owner(ic, u) or admin(u)) R.DeleteObj(i).ShowRep(R.Next(i))
NewComment
Figure 5: Repository
ShowRepository
ShowObject
EditComment
NewObject
EditObject