Professional Documents
Culture Documents
Design Features
The above three design goals and the design constraint can be addressed by four design
features. Below we describe how our proposed framework supports these design features.
Modelling runtime social interactions from a domain perspective To address the first
design goal, it is required to model and represent users’ agreements related to their social
interactions. This model should have a runtime representation to enforce constraints and
agreements while social interactions are happening. Our proposed framework provides a role
based approach to model and represent users’ agreements related to their social interactions,
namely the domain-centric social interaction model (DSIM). Our SocioPlatform provides a
runtime environment to instantiate the DSIM and to facilitate social interactions complying with
the model specification
Modelling runtime social interaction from a player perspective To address the second
design goal, it is required to model and represent social interactions from a player (user)
perspective, to allow the player to specify his/her coordination preferences, and to support
execution of these preferences. Our proposed framework provides an approach to model social
interaction from a player perspective that represents a player’s coordinated view of all his/her
social interactions, namely the playercentric social interaction model (PSIM). Like for a DSIM,
the SocioPlatform also provides a runtime environment for instantiating a PSIM.
Supporting runtime adaptation To address the third design goal, i.e., allow one to modify
runtime social interaction models, it is required to support runtime adaptation in social
interaction models. However, social interaction models are interrelated with each other. For
instance, one or more player-centric social interaction models might be associated with a
domain-centric social interaction model. Thus, a change in a domaincentric social interaction
model needs to be propagated to the associated player-centric social interaction model(s). Our
framework provides a mechanism for adaptation in a social interaction model and adaptation
propagation across social interaction models. The SocioPlatform implements this mechanism and
provides the adaptation management functionality for applications to use.
Runtime model states and safe change To address the design constraint, i.e., performing
adaptation without affecting social interactions, it requires the safe change. Our framework
defines safe change based on the state of each entity, i.e., social role, social relationship and
interaction model as a whole. An entity can be adapted safely only when the entity is in the IDLE
state. The SocioPlatform manages the states of the runtime models and their entities, ensures safe
adaptation to the runtime models without affecting social interactions.
It has already been recognised that the model based development approach is key to facilitating
the application development process and managing runtime adaptation. In our approach, inter-
actor relationships in an application are (externalised from the application implementation and)
modelled explicitly using DSIMs and PSIMs, their runtime (execution) environment is
generated, and adaptation is managed by the SocioPlatform.
Design Process
The design and implementation process for socially-aware applications. Steps _1 –_5
belong to the design process while the step _6 belongs to the implementation process.
In the design process, steps _1 –_4 are applicable for both the data-centric and
interaction-centric socially-aware applications, while step _5 is mainly used for the interaction-
centric socially-aware application. During design process, in step _1 , social context information
of application’s interestis identified through application requirements analysis. The SCOnto, i.e.,
upper social context ontology, is adopted and extended based on the identified social context
information.
In step _3 , description logic based reasoning rules related to SCOnto are modified (e.g.,
unnecessary rules are deleted, new rules are added) and IntEO, i.e., interaction event upper
ontology, is extended (e.g., application specific concepts are added).
In step 4_, SACOnto, i.e., socially-aware access control ontology, is revisited and
modified based on the application requirements. As mentioned above, step _5 is mainly used for
the interaction-centric socially-aware applications, to compose both the domain- and player-
centric social interaction models (DSIMs and PSIMs) from the connection-oriented social
relationships information captured in SCOnto. In this step, software engineers use the
SIMbuilder tool to compose these DSIMs and PSIMs. All of these generated artifacts in the
design process, i.e., ontologies, rules and models, are used by the SocioPlatform to provide
runtime support to the applications.
In the implementation process, i.e., in step _6 , software engineers or application
developers use APIs provided by the SocioPlatform to implement socially-aware
applications.
By following the design process, we build artifacts, i.e., DSIMs and PSIMs, for the
SocioTelematics application.
Section A presents step _2 of the design process that extends SCOnto to model and represent
social context information related to this case study.
Section B presents step 3_ of the design process that extends IntEO and specifies a rule to infer
a situation from drivers’ social interactions at runtime. As step _5 of the design process.
Sect. C shows how to compose domainand player-centric social interaction models from the
extended SCOnto using SIMbuilder.
The application has four fundamental panels such as settings, convoy, interaction and
adaptation (see Fig. 3). When the application starts, the driver needs to configure the application
using the settings panel (see Fig. 3a) by providing a user ID (to recognise the car) and password.
Using the user’s credential, the application invokes the getRoleList organiser role function at the
server side, fetches all social roles associated to its user and populates those roles in the main
screen. Also based on each social role in the role list, the application invokes the
getInteractionList function and accumulates associated interaction definitions for each social
role. This means that the application is not tightly coupled with the social roles played by the car
in a cooperative convoy and also the company from which the car has been rented. Thus, it
serves the purpose of multi-modal use, i.e., without any internal logic change this application can
be used in a car from any rental company as well as by a driver playing either the leading car or
following car social role.
During driving, for the driver to perform the additional tasks in the cooperative convoy (e.g.,
forwarding information) as agreed may cause distraction. To facilitate such collaboration but
with less distraction, the application allows the driver to specify coordination rules for, say,
forwarding information. In the settings panel, a driver can select an incoming interaction
message and its corresponding outgoing message(s) as his/her coordination preferences. For
example, the following car driver specifies a coordination preference as: ―when a road block
notification is received from the roadside assistance service (as the roadBlockNotification
interaction), forward it to the leading car (as the notifyRoadBlock interaction)‖. Figure 4 shows
this coordination rule specified in the SocioTelematics application. Thus, when the application
receives a message that matches with an incoming message in the coordination preferences, the
application (as a coordinator player) sends the corresponding outgoing message(s) immediately
on behalf of the driver. Also, the application provides voice notification (message name and
contents) when a message comes.
Fig.3.: Some screenshots of the SocioTelematics application for Android. (a) Settings panel. (b)
Convoy panel. (c) Interaction panel. (d) Adaptation panel
Figure 3b shows the convoy panel of the application. The map of the screen shows the
cars’ positions in the cooperative convoy. The application uses GPS to show its car position on
the map and notifies that position to others (as the notifyPosition interaction) using the location
sharing service. The application gets the other car’s position once it receives a notifyPosition
message from the other car. Also it shows a warning message as pop-up, for example, if the
distance between the two cars violates their agreed distance.
The interaction panel (see Fig. 3c) of the application allows a driver to perform
interactions and displays: the role list—associated with the driver of the car, the interactions
list—list of interactions corresponding to the selected role in the role list, and the interaction
log—interactions so far occurred.
The adaptation panel (see Fig. 3d) allows the leading car driver to perform adaptation on
the ConvoyDSIM. The current version of the application provides an interface for the organiser
player, e.g., the driver of the leading car, to perform/trigger three structural adaptation: create a
new position (i.e., social role) for a new car to join in the convoy, join a car to the convoy and
remove a car from the convoy. As required, options to trigger other types of structural adaptation
can easily be incorporated to the interface. A number of parametric adaptation can be performed
through the settings panel. The current version provides options to set the position update
frequency and maximum desired distance. Here, it is worth noting that using the application
interface the organiser player only triggers or requests adaptation, while the actual adaptation is
performed on the server side.