<!DOCTYPE article PUBLIC "-//NLM//DTD JATS (Z39.96) Journal Archiving and Interchange DTD v1.0 20120330//EN" "JATS-archivearticle1.dtd">
<article xmlns:xlink="http://www.w3.org/1999/xlink">
  <front>
    <journal-meta />
    <article-meta>
      <title-group>
        <article-title>Assisted modelling over social networks with S O C I O</article-title>
      </title-group>
      <contrib-group>
        <aff id="aff0">
          <label>0</label>
          <institution>Sara Pe ́rez-Soler, Esther Guerra, Juan de Lara Modelling &amp; Software Engineering Research Group</institution>
        </aff>
      </contrib-group>
      <abstract>
        <p>-Social networks are intensively used nowadays for both leisure and work. They have become a natural communication mechanism which helps users in coordinating and collaborating in their daily life activities. To profit from their pervasive use, we propose SOCIO: a modelling assistant that seamlessly integrates across several social networks, like Telegram or Twitter. SOCIO is a modelling bot that can interpret natural language sentences and create metamodels out of them. It provides traceability of design decisions and statistics of user contributions. A video showcasing the tool is available at https://saraperezsoler.github.io/ModellingBot/. Index Terms-Meta-modelling, modelling bots, social networks, natural language processing</p>
      </abstract>
    </article-meta>
  </front>
  <body>
    <sec id="sec-1">
      <title>I. INTRODUCTION</title>
      <p>
        Social networks are becoming an important part of our daily
digital lives, where we use them to keep in touch with friends
and organize leisure activities. They are also gaining relevance
as a mechanism to disseminate information and to cooperate
and coordinate in work tasks. In particular, social media is
increasingly used in software engineering, e.g., to support the
formation of ecosystems around particular concepts and
technologies; to participate in online development communities;
and to disseminate technologies and crowdsource content [
        <xref ref-type="bibr" rid="ref1">1</xref>
        ],
[
        <xref ref-type="bibr" rid="ref2">2</xref>
        ].
      </p>
      <p>
        Given the widespread use of social networks, our goal is to
exploit them for collaborative modelling. Hence, we introduce
the concept of modelling bot, able to interpret natural language
(NL), assist users in creating models, and which integrates
with minimum disruption into the natural communication
mechanism that micro-blogging based social networks – like
Twitter or Telegram – offer. Our approach is lightweight, as
it can be used in mobility and it does not require installing
any dedicated modelling tool, but users can employ the social
network client they are familiar with. It can be used by teams
of engineers, likely distributed, to create models and enhance
their global coordination. It fosters collaboration with domain
experts, who might be unfamiliar with modelling tools, by
interpreting domain requirements expressed in NL. Finally,
it has the potential to facilitate the crowdsourcing of design
decisions. While bots are starting to be used to help in software
engineering activities like documentation or user support [
        <xref ref-type="bibr" rid="ref3">3</xref>
        ],
to our knowledge, ours is the first proposal for a modelling
assistant bot.
      </p>
      <p>
        In this tool demo paper, we describe our modelling bot
SOCIO [
        <xref ref-type="bibr" rid="ref4">4</xref>
        ] which works across several social networks like
Twitter and Telegram. The tool interprets messages from
the social network using the Stanford NL parser [
        <xref ref-type="bibr" rid="ref5">5</xref>
        ], the
WordNet [
        <xref ref-type="bibr" rid="ref6">6</xref>
        ] lexical database to identify synonyms, and an
extensible set of domain requirements extraction rules [
        <xref ref-type="bibr" rid="ref7">7</xref>
        ] that
are responsible for growing the model to reflect the messages
information. The bot keeps track of all model changes and
their provenance, and provides statistics of the participation
of each user and their percentage of model authorship. The
constructed models can be validated, and exported to the
EMF format. While SOCIO has been designed to help in both
modelling and meta-modelling, the current version of the tool
only supports the creation of meta-models.
      </p>
      <p>The remaining of this paper is organized as follows. First,
Section II describes our approach to NL processing, and
Section III presents the architecture and main features of SOCIO.
Next, Section IV compares with related research. Finally,
Section V concludes with prospects for future work.</p>
    </sec>
    <sec id="sec-2">
      <title>II. APPROACH</title>
      <p>The goal of our tool is to provide modelling assistance
integrated within widely used discussion and collaboration
mechanisms such as social networks. For this purpose, our
modelling bot integrates seamlessly in the social network as
another participant, and the interaction with the bot is based
on NL to keep a “sense of flow” as there is no need to
switch tools for discussing and modelling. Figure 1 shows
a scheme of our approach. At any moment, users can send
messages directed to the bot. The way to address the bot varies
slightly depending on the particularities of the social network:
in Twitter, the message needs to mention the username of
the bot (@ModellingBot), while in Telegram, the bot must
belong to the modelling group and a command starting by
“/” needs to be issued. The bot offers a suite of commands
for model management (create a new model, show all existing
models, update a model, validate a model, download a model)
and to obtain statistics. We will explain these commands in
Section III, while in the remainder of this section we will
focus on the handling of NL messages expressing domain
requirements. Messages not directed to the bot are just regular
users</p>
      <p>NL rules
parse
tree
applicable
rule
required
updates</p>
      <sec id="sec-2-1">
        <title>Meta-model</title>
        <p>cross
references
trace
model</p>
      </sec>
      <sec id="sec-2-2">
        <title>Parse message</title>
      </sec>
      <sec id="sec-2-3">
        <title>Find rule</title>
      </sec>
      <sec id="sec-2-4">
        <title>Derive actions</title>
      </sec>
      <sec id="sec-2-5">
        <title>Modify model</title>
      </sec>
      <sec id="sec-2-6">
        <title>Produce feedback</title>
      </sec>
      <sec id="sec-2-7">
        <title>Store traceability</title>
        <p>messages used for discussion and coordination within the
modelling session.</p>
        <p>
          When the bot receives a message, it uses the Stanford parser
to produce a parse tree. Each word in this tree is tagged
with its role in the sentence, like noun (singular or plural) or
verb (past, gerund, past participle, 3rd person singular present,
non-3rd person singular present). We have created a set of
extraction rules that detect certain phrase structures of interest
in the tree and deduce domain requirements that trigger model
updates. The extraction rules are based on the work by Arora
and colleagues [
          <xref ref-type="bibr" rid="ref7">7</xref>
          ], adapted to our context. The rule set is
extensible, and we currently consider the following ones:
Verb to be. These phrases may indicate a subclassing
relation (e.g., “users can be students or teachers”), the type
of a feature (e.g., “price is double”) or the abstractness
of a class (e.g., “course is abstract”).
        </p>
        <p>Verb to have (and synonyms). These phrases identify
features (attributes or references) of a class. We also
consider the Saxon genitive.</p>
        <p>Transitive verbs. When a phrase with a verb, subject and
direct object is identified, this rule triggers the creation
of classes for the subject and direct object (if they do not
exist yet), and a reference for the verb.</p>
        <p>Contain (and synonyms). These phrases signal the need
for a composition relation between two classes (e.g., “an
e-learning platform is made of courses”).</p>
        <p>Add (and synonyms). Imperative phrases using “add”
or a synonym verb result in the creation of classes or
features (e.g., “add name to user”).</p>
        <p>Remove (and synonyms). Similar to the previous rule,
but for removing elements.</p>
        <p>Each rule has a priority, equal to its position in the previous
list. In this way, if several rules are applicable, only the one
with the highest priority is selected. Then, the selected rule
checks the state of the meta-model and produces the necessary
meta-model update actions. In this step, rules make use of
WordNet to detect synonyms, and take into account
grammatical number to allow flexibility when referring to existing
classes (e.g., an existing class “Teacher” can be referred later
as “Instructors”). The actions are generated explicitly so that
their effects can be undone and redone. Supported actions
include creating and removing classes, making them abstract
or concrete, adding and deleting features, and changing the
type of a feature. After processing a message, the updated
meta-model may lack some information, like the type of an
attribute, or whether a feature is an attribute or a reference.
These design decisions remain open and need to be resolved
before the model is deemed valid.</p>
        <p>The message, the user issuing the message and the
performed actions are stored in a traceability model. This allows
keeping accurate record of the provenance and rationale of
every meta-model element, as well as generating different
statistics. Once the meta-model and the trace model have been
updated, the bot sends a picture of the meta-model to all users,
where the impacted elements are highlighted in a different
colour.</p>
        <p>1) Example.: Figure 2 illustrates the processing of several
NL messages used to build a meta-model for e-learning
systems. The first sentence triggers the rule for the verb “to
be”, and results in the creation of two subclasses of Course. In
the second sentence, the user uses a transitive verb (“courses
are evaluated with a test”), which yields the creation of a
new class Test and a reference evaluatedWith. The bot follows
accepted naming conventions: upper camel case for classes
and lower camel case for features. Moreover, it also checks
the grammatical number of the words to assign an appropriate
cardinality to features (e.g., [0..1] in reference evaluatedWith).</p>
      </sec>
    </sec>
    <sec id="sec-3">
      <title>III. TOOL SUPPORT</title>
      <p>We have built a modelling bot called SOCIO to support the
presented approach. It works on Telegram and Twitter, though
it is designed to be extensible with further social networks and
NL rules. The bot stores meta-models in Ecore format, and the
traceability data as EMF models. The pictures of meta-models
are generated with PlantUML. A video showcasing its use and
some examples are available at https://saraperezsoler.github.io/
ModellingBot/.</p>
      <p>Figure 3 shows some screenshots in the interaction with
SOCIO to build and validate a meta-model for e-learning
systems. In the first place (not shown), a Telegram group that
includes the participants and the bot needs to be created. In
“courses
can be
free or
paid courses”
“courses are
evaluated
with a test”
Figure 3a, the bot shows all available commands, and then,
one participant creates a modelling project using the /newproject
command.</p>
      <p>In Figure 3b, a participant sends a NL message to the bot
using the command /talk. The bot interprets the message to
deduce domain requirements, updates the current meta-model
version accordingly, and returns a picture of the updated
metamodel with the created and updated elements highlighted in
green. Figure 3c shows a similar interaction using Twitter. In
this case, the bot username (@ModellingBot) and the project
name (#learningplatform) need to be mentioned. The created
attribute (code) is shown in green. After some interactions,
one participant validates the model (Figure 3d), and the bot
reports there is an error because the type of attribute
PaidCourse.price is missing. At any moment, the meta-model can be
downloaded in Ecore format using command /get (Figure 4a).
The downloaded meta-model can then be used within Eclipse
(Figure 4b).</p>
      <p>The interaction with SOCIO is recorded in a traceability
model. This can be used to understand the rationale of every
decision and analyse user contributions. In particular, SOCIO
offers the following statistics: messages sent by one or all
users, meta-model update actions done by one or all users,
and percentage of meta-model authorship. They are available
through the /history command (see Figure 5a). As an example,
Figure 5b shows the number of messages directed to the
bot from all users along time, while Figure 5c shows the
percentage of authorship. In addition, it is also possible to
obtain a more detailed history of the messages sent by each
user and their consequences.</p>
    </sec>
    <sec id="sec-4">
      <title>IV. RELATED WORK</title>
      <p>
        There are several approaches for collaborative modelling
or meta-modelling [
        <xref ref-type="bibr" rid="ref8">8</xref>
        ]. Some recent examples include
Collaboro [
        <xref ref-type="bibr" rid="ref9">9</xref>
        ] and SPACEclipse [
        <xref ref-type="bibr" rid="ref10">10</xref>
        ]. However, these works do
not consider modelling assistants or NL as an interaction
mechanism, and they do not rely on social networks but
on platforms like Eclipse, which requires technical expertise.
Instead, our approach integrates a modelling bot within a
social network, so that users do not need to switch between
discussion, coordination and modelling tools.
      </p>
      <p>
        Social networks have been recognised to have a high-impact
research potential in software engineering [
        <xref ref-type="bibr" rid="ref1">1</xref>
        ], [
        <xref ref-type="bibr" rid="ref11">11</xref>
        ]. In fact,
we are witnessing an increasing use of bots to automate
certain software engineering tasks, like DevOps activities or
user support bots [
        <xref ref-type="bibr" rid="ref3">3</xref>
        ]. The general goal of their use is to
improve efficiency (do things faster) and effectiveness
(complete tasks towards meaningful goals). SOCIO targets improving
effectiveness of meta-model creation, lowering the barrier of
participation to non-technical people.
      </p>
      <p>
        Several researchers have proposed different models of
crowdsourcing for software design activities. For example,
in [
        <xref ref-type="bibr" rid="ref12">12</xref>
        ], the authors use microtask crowdsourcing for
parallelising the construction of morphological charts, a design
technique to represent decision points and alternative solutions.
Their experiments show the feasibility of using crowdsourcing
to generate a wide range of design solutions, though of varying
quality. More generally, Hoang et al. [
        <xref ref-type="bibr" rid="ref13">13</xref>
        ] provide a set of
recommendations on when to crowdsource decision-making,
namely, when tasks can be performed through the internet, do
not require a significant level of communication, and can be
partitioned into smaller tasks. Moreover, to avoid low quality
outcomes, crowdsourced tasks should be easy to evaluate;
in our case, live quality checks can be performed by both
modelling and domain experts. Finally, platform availability is
also key in crowdsourced tasks; our proposal based on social
networks completely fulfils this requirement.
      </p>
      <p>Altogether, to the best of our knowledge, our proposal is
novel as modelling assistant bots have not been proposed up
to now.</p>
    </sec>
    <sec id="sec-5">
      <title>V. CONCLUSIONS AND FUTURE WORK</title>
      <p>This paper has described SOCIO, a bot for assisted modelling
over social networks. It works over Twitter and Telegram,
(a) Creating a new project
(b) Talking to the bot
(c) Interaction through Twitter
(d) Meta-model validation
interpreting NL sentences from different users to create a
meta-model in a collaborative way. The assistant seamlessly
integrates within the social network and keeps track of the
model history and user contributions.</p>
      <p>We are currently improving some aspects of SOCIO, e.g.,
enhancing NL processing for more accurate deduction of
cardinalities, enabling meta-model instantiation, and defining
user roles with support for collaboration protocols. We also
plan to integrate other social networks and communication
mechanisms, like speech recognition using Skype bots.
Acknowledgements. Work funded by the Spanish MINECO
(TIN2014-52129-R) and the R&amp;D programme of Madrid
(S2013/ICE-3006).
(a) Downloading Ecore meta-model
(b) Ecore meta-model in Eclipse</p>
    </sec>
  </body>
  <back>
    <ref-list>
      <ref id="ref1">
        <mixed-citation>
          [1]
          <string-name>
            <given-names>M. D.</given-names>
            <surname>Storey</surname>
          </string-name>
          ,
          <string-name>
            <given-names>A.</given-names>
            <surname>Zagalsky</surname>
          </string-name>
          ,
          <string-name>
            <given-names>F. M. F.</given-names>
            <surname>Filho</surname>
          </string-name>
          ,
          <string-name>
            <given-names>L.</given-names>
            <surname>Singer</surname>
          </string-name>
          , and
          <string-name>
            <given-names>D. M.</given-names>
            <surname>Germa</surname>
          </string-name>
          <article-title>´n, “How social and communication channels shape and challenge a participatory culture in software development</article-title>
          ,
          <source>” IEEE Trans. Software Eng.</source>
          , vol.
          <volume>43</volume>
          , no.
          <issue>2</issue>
          , pp.
          <fpage>185</fpage>
          -
          <lpage>204</lpage>
          ,
          <year>2017</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref2">
        <mixed-citation>
          [2]
          <string-name>
            <given-names>J.</given-names>
            <surname>Whitehead</surname>
          </string-name>
          ,
          <string-name>
            <surname>I.</surname>
          </string-name>
          <article-title>Mistr´ık, J. Grundy, and</article-title>
          <string-name>
            <surname>A. van der Hoek</surname>
          </string-name>
          , “
          <article-title>Collaborative software engineering: Concepts and techniques</article-title>
          ,” in Collab. Soft. Eng. Springer,
          <year>2010</year>
          , pp.
          <fpage>1</fpage>
          -
          <lpage>30</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref3">
        <mixed-citation>
          [3]
          <string-name>
            <given-names>M. D.</given-names>
            <surname>Storey</surname>
          </string-name>
          and
          <string-name>
            <given-names>A.</given-names>
            <surname>Zagalsky</surname>
          </string-name>
          , “
          <article-title>Disrupting developer productivity one bot at a time,” in FSE</article-title>
          . ACM,
          <year>2016</year>
          , pp.
          <fpage>928</fpage>
          -
          <lpage>931</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref4">
        <mixed-citation>
          [4]
          <string-name>
            <given-names>S.</given-names>
            <surname>Pe</surname>
          </string-name>
          <article-title>´rez-</article-title>
          <string-name>
            <surname>Soler</surname>
            ,
            <given-names>E.</given-names>
          </string-name>
          <string-name>
            <surname>Guerra</surname>
            , J. de Lara, and
            <given-names>F.</given-names>
          </string-name>
          <string-name>
            <surname>Jurado</surname>
          </string-name>
          , “
          <article-title>The rise of the (modelling) bots: Towards assisted modelling via social networks,” in ASE</article-title>
          . IEEE,
          <year>2017</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref5">
        <mixed-citation>
          [5]
          <string-name>
            <given-names>M.</given-names>
            <surname>Marneffe</surname>
          </string-name>
          ,
          <string-name>
            <given-names>B.</given-names>
            <surname>Maccartney</surname>
          </string-name>
          , and
          <string-name>
            <given-names>C.</given-names>
            <surname>Manning</surname>
          </string-name>
          , “
          <article-title>Generating typed dependency parses from phrase structure parses</article-title>
          ,” in LREC,
          <year>2006</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref6">
        <mixed-citation>
          [6]
          <string-name>
            <given-names>G. A.</given-names>
            <surname>Miller</surname>
          </string-name>
          , “
          <article-title>Wordnet: A lexical database for english</article-title>
          ,
          <source>” Comm. ACM</source>
          , vol.
          <volume>38</volume>
          , no.
          <issue>11</issue>
          , pp.
          <fpage>39</fpage>
          -
          <lpage>41</lpage>
          ,
          <year>1995</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref7">
        <mixed-citation>
          [7]
          <string-name>
            <given-names>C.</given-names>
            <surname>Arora</surname>
          </string-name>
          ,
          <string-name>
            <given-names>M.</given-names>
            <surname>Sabetzadeh</surname>
          </string-name>
          ,
          <string-name>
            <given-names>L. C.</given-names>
            <surname>Briand</surname>
          </string-name>
          , and
          <string-name>
            <given-names>F.</given-names>
            <surname>Zimmer</surname>
          </string-name>
          , “
          <article-title>Extracting domain models from natural-language requirements: Approach and industrial evaluation,” in MoDELS</article-title>
          . ACM,
          <year>2016</year>
          , pp.
          <fpage>250</fpage>
          -
          <lpage>260</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref8">
        <mixed-citation>
          [8]
          <string-name>
            <given-names>M.</given-names>
            <surname>Renger</surname>
          </string-name>
          ,
          <string-name>
            <given-names>G. L.</given-names>
            <surname>Kolfschoten</surname>
          </string-name>
          , and G. de Vreede, “
          <article-title>Challenges in collaborative modelling: A literature review</article-title>
          and research agenda,
          <source>” IJSPM</source>
          , vol.
          <volume>4</volume>
          , no.
          <issue>3</issue>
          /4, pp.
          <fpage>248</fpage>
          -
          <lpage>263</lpage>
          ,
          <year>2008</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref9">
        <mixed-citation>
          [9]
          <string-name>
            <given-names>J. L. C.</given-names>
            <surname>Izquierdo</surname>
          </string-name>
          and
          <string-name>
            <given-names>J.</given-names>
            <surname>Cabot</surname>
          </string-name>
          , “
          <article-title>Collaboro: A collaborative (meta) modeling tool,” PeerJ Computer Science</article-title>
          , vol.
          <volume>2</volume>
          , p.
          <fpage>e84</fpage>
          ,
          <year>2016</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref10">
        <mixed-citation>
          [10]
          <string-name>
            <given-names>J.</given-names>
            <surname>Gallardo</surname>
          </string-name>
          ,
          <string-name>
            <given-names>C.</given-names>
            <surname>Bravo</surname>
          </string-name>
          , and
          <string-name>
            <given-names>M. A.</given-names>
            <surname>Redondo</surname>
          </string-name>
          , “
          <article-title>A model-driven development method for collaborative modeling tools</article-title>
          ,
          <source>” J. Network and Computer Applications</source>
          , vol.
          <volume>35</volume>
          , no.
          <issue>3</issue>
          , pp.
          <fpage>1086</fpage>
          -
          <lpage>1105</lpage>
          ,
          <year>2012</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref11">
        <mixed-citation>
          [11]
          <string-name>
            <given-names>A.</given-names>
            <surname>Begel</surname>
          </string-name>
          , R. DeLine, and T. Zimmermann, “
          <article-title>Social media for software engineering,” in FoSER@FSE</article-title>
          . ACM,
          <year>2010</year>
          , pp.
          <fpage>33</fpage>
          -
          <lpage>38</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref12">
        <mixed-citation>
          [12]
          <string-name>
            <given-names>E.</given-names>
            <surname>Weidema</surname>
          </string-name>
          ,
          <string-name>
            <given-names>C.</given-names>
            <surname>Lopez</surname>
          </string-name>
          ,
          <string-name>
            <given-names>S.</given-names>
            <surname>Nayebaziz</surname>
          </string-name>
          ,
          <string-name>
            <given-names>F.</given-names>
            <surname>Spanghero</surname>
          </string-name>
          ,
          <article-title>and</article-title>
          <string-name>
            <surname>A. van der Hoek</surname>
          </string-name>
          , “
          <article-title>Toward microtask crowdsourcing software design work,” in CSISE@ICSE,</article-title>
          <year>2016</year>
          , pp.
          <fpage>41</fpage>
          -
          <lpage>44</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref13">
        <mixed-citation>
          [13]
          <string-name>
            <given-names>N. H.</given-names>
            <surname>Thuan</surname>
          </string-name>
          ,
          <string-name>
            <given-names>P.</given-names>
            <surname>Antunes</surname>
          </string-name>
          , and
          <string-name>
            <given-names>D.</given-names>
            <surname>Johnstone</surname>
          </string-name>
          , “
          <article-title>Factors influencing the decision to crowdsource: A systematic literature review</article-title>
          ,
          <source>” Information Systems Frontiers</source>
          , vol.
          <volume>18</volume>
          , no.
          <issue>1</issue>
          , pp.
          <fpage>47</fpage>
          -
          <lpage>68</lpage>
          ,
          <year>2016</year>
          .
        </mixed-citation>
      </ref>
    </ref-list>
  </back>
</article>