=Paper= {{Paper |id=Vol-2019/commitmde_2 |storemode=property |title=Towards Efficient Evaluation of Rule-based Permissions for Fine-grained Access Control in Collaborative Modeling |pdfUrl=https://ceur-ws.org/Vol-2019/commitmde_2.pdf |volume=Vol-2019 |authors=Gabor Bergman,Csaba Debreceni,Istvan Rath,Daniel Varro |dblpUrl=https://dblp.org/rec/conf/models/BergmanDRV17 }} ==Towards Efficient Evaluation of Rule-based Permissions for Fine-grained Access Control in Collaborative Modeling== https://ceur-ws.org/Vol-2019/commitmde_2.pdf
           Towards Efficient Evaluation of Rule-based
         Permissions for Fine-grained Access Control in
                    Collaborative Modeling
                         Gábor Bergmann1,2 , Csaba Debreceni1,2 , István Ráth1 and Dániel Varró1,2,3
    1
        Budapest University of Technologies and Economics, Department of Measurement and Information Systems, Hungary
                           2
                             MTA-BME Lendület Research Group on Cyber-Physical Systems, Hungary
                  3
                    McGill University of Montreal, Department of Electrical and Computer Engineering, Canada
                               Email: {bergmann,debreceni,rath,varro}@mit.bme.hu



   Abstract—In case of collaborative modeling, complex systems                 of a specific component needs to be revealed to certification
are developed by different stakeholders, in offline submissions                authorities to obtain certification credit but they need to
or online sessions. To guarantee security, access control policies             be hidden from competitors who might supply a different
need to be enforced during the collaboration.
   As levels of required confidentiality and integrity may vary                component in the system. Furthermore, there may be critical
across model parts, we have previously proposed fine-grained                   aspects of the system model that may only be modified by
rule-based access control, and shown how to consistently interpret             domain experts having the appropriate qualifications.
flexible access control policies.                                                 Capturing security policies on the storage (file) level instead
   Now we present an improvement on the previous results                       of the model level results in inflexible fragmentation of models
allowing for incremental recomputation, which is vital for online
collaboration scenarios. Our approach is illustrated using a case              in collaborative scenarios (although flexibility is key [25]);
study of the MONDO EU project.                                                 this can be solved by fine-grained access control, where
                                                                               each model element and its features can have its own set
                          I. I NTRODUCTION                                     of permissions. On the other hand, large industrial models
A. Background and Motivation                                                   can have millions of model elements, thus explicitly assigning
                                                                               permissions for each of them, as well as maintaining the
   Model-based systems engineering has become an increas-                      permissions after changes to the model, would be labor-
ingly popular approach [32] in critical cyber-physical sys-                    intensive and error-prone, and would make it difficult to
tems followed by many system integrators like airframers                       understand the system of privileges.
or car manufacturers to simultaneously enhance quality and                        A rule-based approach for concisely defining fine-grained
productivity. An emerging industrial practice of such system                   model access control policies has been proposed in [6]. A
integrators is to outsource the development of various compo-                  single rule may grant or deny nominal permissions for many
nents to subcontractors in an architecture-driven supply chain.                elements in a model. Due to this implicit nature, it is possible
Distributed teams of different stakeholders (system integrators,               that several rules would be in direct conflict with each other,
software engineers of component providers/suppliers, hard-                     assigning contradictory permissions for some model element.
ware engineers, specialists, certification authorities, etc.) may              Indirect conflicts are also possible, if the fragment of the
collaborate using models.                                                      model revealed to a user is not consistent with itself, or
   In an offline collaboration scenario, collaborators check out               with the write permissions. In [10], we resolve conflicts in
an artifact from a version control system (VCS) and commit                     a deterministic and customizable way to present a consistent
local changes to the repository in an asynchronous long trans-                 and secure updateable view to each user.
action. In online collaboration, engineers may simultaneously                     The solution in [10] relies on an algorithm that can be
edit a model in short synchronous transactions which are                       executed for a given state of the model to derive the effective
immediately propagated to all other users (similarly to online                 permissions from the nominal ones. However, this strategy
collaborative tools like Google Docs). Several collaborative                   might not scale up to larger system models in case of online
modeling frameworks exist [23], but security management is                     collaboration, as the algorithm would have to re-process the
unfortunately still in a preliminary phase.                                    permissions of all model elements after each small editing
   In fact, collaborative scenarios introduce significant chal-                operation, leading to unacceptable response times.
lenges for security management, both in terms of confiden-
tiality and integrity. For instance, the detailed internal design              B. Goals and Contributions
                                                                                  In this paper, we investigate a possible way to incremen-
  This paper is partially supported by the MTA-BME Lendület 2015 Research
Group on Cyber-Physical Systems. The first author was supported by the János   talize the conflict resolution schema, so that small changes
Bolyai Research Scholarship of the Hungarian Academy of Sciences.              within large models would incur a small maintenance com-
                                               Module


             [0..*] submodules

                          Composite                       Control

              protectedIP : EBoolean = false      type : Type = Fan
                                                  cycle : Cycle = high
                  Cycle               Type

                high             Fan
                medium           Heater
                low              Pump



Figure 1: Simplified Metamodel of Offshore Wind Turbines
                                                                               Figure 2: Sample Wind Turbine Instance Model


putation only. Such an incremental resolution method would               that oversees the entire module structure and has read and
(a) supercede the limited-scope proof-of-concept incremental             write access to the entire model.
conflict resolver used in the online scenario experiments of [6],           2) Online Usage Scenario: The system integrator company
(b) inherit the beneficial features (flexibility, consistency, de-       is hosting the wind turbine control model on their collabo-
terminism) of the non-incremental resolver algorithm [10], and           ration server, where it is stored, versioned, etc. A group of
(c) complement the incremental policy rule evaluation and en-            users may participate in online collaboration, where they
forcement techniques presented in [6] to guarantee acceptable            are continuously connected to the central repository via an
performance for online in addition to offline collaboration.             appropriate client (e.g. web browser). Through their client,
   We achieve this goal by reformulating the original algorithm          each user sees a live view of those parts of the model that
of [10] as a recursive Datalog [16] query on the system model            they are allowed to access. The users can modify the model
(technically recursive V IATRA [5] graph patterns), for which            through their client, which will directly forward the change to
incremental evaluation algorithms are known. We point out                the collaboration server. Then the server will decide whether
subtle difficulties with the evaluation of the resulting patterns,       the change is permitted under write access restrictions. If
and suggest solutions for dealing with them.                             it is allowed, then the views of all connected users with
                             II. C ASE S TUDY                            appropriate read permissions will be updated transparently
                                                                         and immediately. However, changes introduced by a user may
A. Modeling Language                                                     influence the accessibility of model parts for other users.
   Several concepts will be illustrated using a simplified ver-          Hence, the access control policy has to be reevaluated when
sion of a modeling language for system integrators of offshore           the model is changed.
wind turbine controllers, which is one of the case studies
of the MONDO EU FP7 project. The metamodel, defined                       Example 2. After the Principal Engineer changes the pro-
in EMF [29] and depicted by Fig. 1, describes how the                     tectedIP attribute of the composite module c2 from true to
system is modeled as modules organized in a containment                   false, the Pump Control Engineer shall be able to access
hierarchy of composite modules. Composite modules may                     the contained pump control module ctrl4.
express protected IP and they can ultimately contain control                             III. S ECURITY VOCABULARY
unit modules that are responsible for a given type of physical
device (such as pumps, heaters or fans).                                   Here we briefly introduce a vocabulary for fine-grained
                                                                         access control; a more detailed treatment can be found in our
 Example 1. A sample instance model containing a hierarchy               previous work [6] and especially [10].
 of 3 Composite modules and 4 Control units is shown in
                                                                         A. Model Facts as Assets
 Fig. 2 – boxes represent objects, entries within the box are
 attribute values, and edges are containment references.                    In order to provide fine-grained access control, models have
                                                                         to be decomposed into smaller assets that can be separately
   1) Access Restrictions: We assume that each control unit              protected. For simplicity, we will consider models as a set of
type (Pump, etc. . . ) is associated with a specific person (re-         elementary model facts. For example, EMF models (ignoring
ferred to as specialist) who is responsible for maintaining the          the multi-resource case) consist of the following kinds of
model of control unit modules of that specific type. Each such           model facts:
user is able to modify the control units that belong to them,            Object facts are pairs formed of a model element (EObject)
they cannot access to any control unit contained directly or               with its exact type (EClass), for each model element object;
indirectly by composite module that express protected IP. For              e.g. obj(c1,Composite).
instance, the user responsible for pump controllers (the Pump            Attribute facts are triples formed of a source EObject, an
Control Engineer) can modify the controller ctrl1 but cannot               attribute name (EAttribute) and the attribute value, for each
see the object ctrl4 as it is contained c2 which describe that             (non-default) attribute value assignment; e.g. attr(ctrl3, cy-
its content is protected. Finally, there is a principal engineer           cle,::low).
Reference facts are triples formed of a source EObject, a
  reference type (EReference) and the referenced EObject, for
  each containment link and cross-link between objects; e.g.
  ref(c1,submodules,ctrl2).
Note that for multi-valued attributes and references, each of
the multiple entries at a source EObject will be represented
by a separate attribute or reference fact.
   In the following, we will focus on object facts, but the same
formal framework applies to all assets.
B. Permissions
   The above mentioned model facts are the assets that the               Figure 3: Effective Perms. for Pump Control Engineer
access control policy will protect against operations (typically
read and write) that can be performed by the user. The goal of        from being processed and stored in the given modeling tech-
interpreting the security policy is to come up with an effective      nology, as error markers can be placed on such violations.
permission function that assigns a permission level to each           Thus only internal consistency is essential for access control.
combination of asset, user and operation.                                Internal consistency of the filtered view implies that the
   The assigned permission level takes its value from a permis-       effective permissions must satisfy a some constraints that
sion lattice characteristic to the operation. In the simplest case,   are expressed as a strong dependency relationship between
this is the two-valued lattice {deny < allow}; in general it is       two values of the effective permission function: a dependant
possible to use a more refined lattice instead. In the rest of the    and a dependee. According to the formalization in [10], this
paper, we will restrict ourselves to the case where the lattice       relationship is a Galois connection. This means that if a lower
is a total order, i.e. from any two levels, one is considered         bound is known for the permission level of the dependant,
strictly more restrictive than the other.                             then a lower bound on the permission level of the dependee
   For instance, it was previously suggested [10] to use              is inferred; and conversely, an upper bound on the dependee
{deny < obfuscate < allow} as read permission levels, to              puts an upper bound on the dependant. For instance, (a) if an
express the case where an attribute of an otherwise visible           asset is writable (write permission level allow), then it must
object conveys confidential information that shall not be re-         also be visible (at least on the read permission level allow);
vealed to the given user, but the attribute can not be completely     (b) if an object is readable at least on the level obfuscate, then
hidden (since it is used as e.g. an identifier or visual label).      its containing object (if any) must also be visible (at least on
   A sample refinement of the write permission levels could           the level obfuscate). All of these constraints have a converse,
be {deny < dangle < allow}, where cross-references with               e.g. if an object is not visible (read permission level is at most
write permission level dangle can not be normally modified            deny), then any contained objects have their read permission
by the user, but they can be removed as the side effect of            level at deny as well.
deleting the target object of the reference (if that deletion is         Apart from the strong dependencies discussed above, the
permitted), even if the cross-link is not visible to the user.        concept of weak consequences were also introduced in [10],
Imagine a traceability link that points from a hidden part of         to express defaults rather than strict implications. For example,
the model to a visible object; the difference between assigning       all contained elements and attributes of a visible object should
deny or dangle is that the target object can not be deleted by        also be made visible by default - unless there is another reason
the user in the former case, while its deletion would be allowed      to deny the read permission. Also, if the read permission for an
(with an invisible side-effect of removing the traceability link)     object is known to be at most obfuscate, its write permission
in the latter case.                                                   must be at most dangle as a strong consequence, but (weak
C. Consistency of Secure View                                         consequence) it should be deny by default, unless specifically
   The view presented to a user consists of the set of assets         overridden.
for which they have read permissions (modulo obfuscation,              Example 3. Fig. 3 depicts the effective permissions of the
see above). However, an arbitrary set of model facts does not          running example for the Pump Control Engineer. As c2
necessarily constitute a valid model; there may be internal            expresses protected IP, read and write operations are denied
consistency constraints (also called referential integrity con-        for the composite c2 and its contents, visualized by dashed
straints) imposed on the facts by the modeling platform to             borders in case of objects and dashed edges in case of refer-
ensure the integrity of the model representation and the ability       ences. On the other hand, the control module ctrl1 needs
to persist, read, and traverse models. A major goal stated in [6],     to be modifiable, therefor also visible (strong dependency)
[10] requires that secure models must be synthesized as a set          denoted by RW in a square. As ctrl1 needs to be visible,
of model facts compatible with all internal consistency rules.         its container c1 and also the root module root need to be
   Note that we distinguish these low-level internal consistency       visible at least in an obfuscated way (strong dependency)
rules from high-level, language-specific well-formedness con-
straints. Violating the latter kind does not prevent a model
    Listing 1 Queries for Access Control Rules                            Listing 2 Access Control Rules of the Example
1     pattern pumpControlPattern(ctrl:Control)                          1   policy Example deny RW by default {
2     { Control.type(ctrl,::Pump)}                                      2   rule accessModule allow W to PumpCtrlEng
3                                                                       3   { query: pumpControlPattern } priority 1
4     pattern propectedIPPattern(c:Composite)                           4
5     { Composite.protectedIP(c,true)}                                  5   rule hideModule deny R to PumpCtrlEng
                                                                        6   { query: propectedIPPattern } priority 2
                                                                        7 }

     denoted by O in squares. There are no explicit restrictions
     related to the attributes of control module ctrl1, so they
                                                                           Example 4. Lst. 1 specifies the graph queries for access con-
     inherit visibility from the object asset (weak consequence).
                                                                           trol rules in V IATRA syntax. Pattern pumpControlPattern
                                                                           selects all control module of type ::Pump while pat-
                        IV. P REVIOUS W ORK
                                                                           tern propectedIPPattern queries the composite modules
       Using the vocabulary introduced in Sec. III, we now briefly         where the protectedIP is to true.
    revisit the rule-based access control solution and the non-               The policy described in Lst. 2 using the syntax introduced
    incremental conflict resolver introduced by [10]. More detailed        in [10] refers these graph pattern to specify access control
    descriptions with concrete examples can be found in the                rules. Rule accessModule allows the write operation of
    referenced paper.                                                      modules identified by pattern pumpControlPattern and
       The design goals were to allow the policy engineer to               rule hideModule denies the read operation of modules
    declaratively, concisely but also flexibly express permissions         selected by pattern propectedIPPattern. Priorities of the
    for a large number of assets in the form of rules. This was            rules are 1 and 2, respectively.
    achieved by providing a (terminating, deterministic) algorithm            The policy specifies the global default that all the assets
    that interprets these rules and resolves conflicts among them          are unreadable and unmodifiable. Rule accessModule as-
    (also taking into account the defaults), yielding an effective         signs read permissions to objects ctr1 and ctrl2 which is
    permission function that meets the intentions of the policy            the result set of pattern pumpControlPattern) while rule
    engineer and satisfies the dependencies among assets.                  hideModule denies the read permission of c2 the result set
                                                                           of pattern propectedIPPattern.
    A. Rule-based Access Control
       In [6], we introduced a rule-based access control approach,        B. Judgments
    where the rules are defined by graph queries (model queries).            During the process of conflict resolution, the algorithm
    Such a query is essentially a formula that can be evaluated on        maintains a set of (typically conflicting) direct and indirect
    the model. When a query is evaluated, the results consist of          consequences of the access control rules.
    a set of pattern matches. Rules grant or deny read and write             We define a permission set as a set of judgments, where each
    permissions to the assets identified by the pattern matches of        judgment j is a tuple j = ha, o, p, ψ, πi, where a ∈ Assets is
    a query. Of course, a rule may only affect a subset of users, so      an asset, o ∈ {R, W } is an operation (read or write) to be
    a selection of users/groups is given as well. Finally, a priority     performed on the asset, p ∈ Levelso is a permission level
    class π ∈ Π is given as well, according to which conflicts are        associated with the operation, ψ ∈ Ψ = {>, <} indicates
    resolved: the higher priority rule overrides the lower priority       whether the judgment puts that permission level as an upper
    one according to the total order of Π. To unburden the author,        respectively lower bound for the final permission decision, and
    the order of rules in the policy may be taken as a default            π ∈ Π is a priority class.
    assignment of priority classes.                                          A valid permission set is complete, i.e. for each asset and
       To summarize, an access control rule in the policy consists        operation, it must contain at least one upper bound and one
    of a set of affected users/groups, a model query to identify          lower bound judgment, and by the ordering of permission
    affected assets, a priority class π ∈ Π, an affected operation,       levels, the lowest (strictest) upper bound must not be higher
    and an upper or lower bound on the permission level of that           than the highest (strictest) lower bound.
    operation.                                                               The initial permission set is obtained from rules and de-
       We allow for compound rules as concise syntactic sugar,            faults. For all assets and operations, default permissions are
    where the policy engineer can specify more than one rule              included as a pair of judgments (one upper bound, one lower
    (corresponding to the above structure) in one go. For instance,       bound, both with the same permission level), with a priority
    it shall be possible to set both read and write permissions to        class that is lower than the priority of any query-based rule;
    deny, or to set the upper and lower bound of a read permission        this ensures completeness. For each match of the queries
    to obfuscate simultaneously.                                          of security rules that apply for the user, an upper or lower
       The conflict resolution process of one user is independent         bound judgment is added; the asset is given by the pattern
    from any other users. Therefore in the following sections,            maftch, and the operation, priority class and permission level
    we consider permissions from the perspective of a single              are determined by the rule header.
    user only, and omit the user identity from the subsequently              The goal is to derive the resolved permission set, where the
    introduced structures.                                                highest (most permissive) lower bound is equal to the lowest
        Table I: Initial Judgments of the example Rules                         Example 6. The judgment hobj(c2,Composite), R, deny, >, 2i
                   hobj(ctrl1,Control), W, allow, <, 1i                         obtained from the rule hideModule needs to be propa-
                   hobj(ctrl4,Control), W, allow, <, 1i                         gated to the contained objects of composite c2 as strong
                   hobj(c2,Composite), R, deny, >, 2i
                                                                                dependency. Hence, new judgments appear with exactly
                                                                                the same priority, operation, permission level and bound,
     Table II: Global Defaults on Control Module ctrl1
                                                                                namely the judgments hobj(ctrl3,Control), R, deny, >, 2i and
                    hobj(ctrl1,Control), R, deny, <, 0i                         hobj(ctrl4,Control), R, deny, >, 2i. However, the new judg-
                    hobj(ctrl1,Control), R, deny, >, 0i
                    hobj(ctrl1,Control), W, deny, <, 0i                         ment hobj(ctrl4,Control), R, deny, >, 2i is in local conflict
                    hobj(ctrl1,Control), W, deny, >, 0i                         with the judgment hobj(ctrl4,Control), R, allow, <, 1i obtained
                                                                                from the rule accessModule (see Table I) as they refer to
                                                                                the same asset and operation and contradict on the permission
upper bound for each asset and operation (thereby identifying                   bound (at least allow vs. at most deny).
a single permission level as the effective permission), and
there are no conflicts (neither directly nor indirectly though                 D. Dominance and the Resolution Step
dependencies) between the judgments.                                              Take any two judgments that are in conflict. Without loss
                                                                               of generality, we may assume that one must dominate the
 Example 5. The initial permission set obtained from                           other via its higher priority class (see [10] for the unimportant
 the evaluation of access control rules accessModule and                       nuance of conflicts within the same priority class). Due to the
 hideModule is collected in Table I. Global defaults deny all
                                                                               consequence propagation introduced in Sec. IV-C, it is enough
 access with 4 judgments per asset (both bounds (>, <) and                     to consider local conflicts, as any conflict will manifest itself
 operations (R,W) set to deny), e.g. the default judgments of                  somewhere as a local conflict. Therefore we consider pairs of
 the control module ctrl1 are listed in Table II.                              judgments on the same asset and operation, where one is an
                                                                               upper bound judgment, and the other is an incompatible lower
C. Propagation of Consequences                                                 bound judgment with different priority.
                                                                                  A resolution step takes two judgments that are in a local
   In Sec. III-C we discussed how the requirement of internal                  conflict, and modifies the dominated judgment to make it
consistency introduces dependencies between the permission                     compatible with the dominant judgment. For locally conflict-
levels of different assets and operations.                                     ing judgments j = ha, o, p, ψ, πi and j 0 = ha, o, p0 , ψ 0 , π 0 i
   As a judgment may impose dependency constraints on other                    with π > π 0 the conflict resolution replaces j 0 with j 00 =
assets or operations, its consequences can be propagated and                   ha, o, p, ψ 0 , π 0 i. Executing such a step transforms a permission
directly represented as additional judgments on foreign asset/-                set to a different one.
operation pairs. Using the propagated consequence judgments,                      Observations on the resolution step: (a) j 00 relaxes j 0 , i.e.
all indirect conflicts can be transformed into local conflicts.                upper bounds are raised when replaced, while lower bounds
The latter means that the conflict is expressed as two directly                are lowered. (b) j 00 is guaranteed by the construction to be
contradicting judgments for the same asset and operation,                      non-conflicting with j. (c) The resolution step upholds the
as opposed to dependency-driven indirect conflicts between                     completeness of the permission set.
judgments at different assets of operations. It was discussed
in [10] how consequence propagation makes focusing on local                     Example 7. In Ex. 6 , a local conflict is introduced by
conflicts sufficient.                                                           propagation of strong dependency. Due to domination, the
   For judgment j = ha, o, p, ψ, πi of bound ψ ∈ Ψ =                            judgment hobj(ctrl4,Control), R, deny, >, 2i with higher pri-
{>, <}, with a dependency on asset and operation ha0 , o0 i,                    ority relaxes the judgment hobj(ctrl4,Control), R, allow, <, 1i
the propagated strong consequence judgment is denoted as                        to hobj(ctrl4,Control), R, deny, <, 1i.
jha0 ,o0 i := ha0 , o0 , l, ψ, πi where l is the bound associated with
p by the Galois connection described in Sec. III-C.                            E. Resolution Process
   Extending the above notion, is also possible to propagate                     The non-incremental resolution process (see Alg. 1) pro-
weak consequences that encapsulate a default effect of a                       posed in [10] iterates over judgments in the order of dom-
given judgment, not a necessary condition. Unlike its strong                   inance (i.e. highest priority first), to propagate their conse-
counterpart, a weak consequence does not inherit the priority                  quences (also the weak consequences, unless contradicted by a
of the original judgment, but is assigned a lower priority                     previously processed judgment) and resolve any local conflicts
instead, and may be overridden by more dominant judgments                      that are detected.
without conflicting with the original judgment. It can be for-                   The analysis in [10] shows that this process always termi-
                           ∗              0 0 ∗          ∗                     nates, yields a deterministic (confluent) result regardless of the
mally captured as jha        0 ,o0 i := ha , o , l , ψ, π i. It was proposed

in [10] to assign a priority class to these weak consequences                  choice of unprocessed dominant judgment, and the result is a
that is lower than the priority of any user-specified rule, but                complete and consistent effective permission set.
higher than the priority of global defaults that such a weak
consequence may override.
Algorithm 1 The resolution process of [10] in pseudocode                        B. Naive Reformulation
           . The policy is assumed as an implicit global parameter                 For the sake of simplicity, the following discussion will
  function G ET E FFECTIVE P ERMISSIONS(model, user)
     permissionSet ← getInitialP ermissions(model, user)                        focus on object assets only. The conflict resolver takes the
     processed ← ∅                                                              following inputs (extensional relations in Datalog parlance):
     while permissionSet 6⊆ processed do                                        • The explicit judgments that are immediately obtained by
         j ← chooseDominant(permissionSet \ processed)
                                                                                   evaluating the access control rules in the policy; as men-
         processed ← processed ∪ {j}                    . mark as effective
         for all dependencies ha0 , o0 i of j do                  . propagate      tioned above, each match of the associated model query of
             conseq ← {jha0 ,o0 i }                  . strong consequence          the rule will yield a judgment (in the initial permission set).
             if 6 ∃ j 0 ∈ processed conflicting jha   ∗
                                                        0 ,o0 i then            • Low-priority judgments corresponding to global defaults
                                           ∗
                  conseq ← conseq ∪ {jha     0 ,o0 i }                . weak       (can be merged with the former).
             end if                                                             • Relations describing the connections between assets, in
             permissionSet ← permissionSet ∪ conseq
         end for                                                                   order to enable the propagation of consequent judgments.
         conf licts ← localConf lictsOf (j, permissionSet)                         For instance, in case of object facts, a binary relation
         for all j 0 ∈ conf licts do                        . resolve locally      describing the containment hierarchy is necessary.
             j 00 ← ResolutionStep(j, j 0 )                     . j dominates
                                                                                   From these extensional relations, the following incremen-
             permissionSet ← permissionSet ∪ {j 0 } \ {j 00 }
         end for                                                                tally maintained queries (intensional relations) are derived (see
     end while                                                                  also Lst. 3):
     return permissionSet                                                       judgment matches all inferred judgments j = ha, o, p, ψ, πi,
  end function                                                                    computed as the union of explicit judgments, the strong
                                                                                  and weak consequent judgments, and the relaxed forms of
                                                                                  dominated judgments.
 Example 8. The output of the algorithm on the case study
                                                                                relaxedJudgment identifies judgments that are dominated
 is presented in Ex. 3 and visualized in Fig. 3.
                                                                                  (see next query), and computes their relaxed form (inheriting
                                                                                  the bound of the dominant judgment).
              V. D ECLARATIVE R EFORMULATION                                    domination identifies the judgments in local conflict (suf-
A. Motivation                                                                     ficient as per Sec. IV-C) and the dominant one among
   In Sec. IV, we presented the algorithm of [10] for obtain-                     them; this query matches pairs of dominating and dominated
ing the effective permissions from the nominal permissions                        judgments in local conflict, respectively j = ha, o, p, ψ, πi
explicitly assigned by the access control rules of the policy.                    and j 0 = ha, o, p0 , ψ 0 , π 0 i, that are defined on the same asset
The algorithm can be run on a state of the model to produce                       and operation, with the dominating judgment having higher
the effective permissions of all model elements.                                  priority (π > π 0 ) and the dominated bound contradicting it
   This is an adequate solution for the offline collaboration                     (p0 ψp for ψ ∈ Ψ = {>, <}, as expressed by helper pattern
scenario, which is characterized by infrequent commit actions                     permissionOutOfBound). For efficiency, only effective
at the end of long transactions, which may change an arbitrar-                    judgments (see next query) are considered for the role of
ily large part of the model. And even if the change themselves                    the dominating judgment.
turn out to be relatively small, the complexity of processing the               effectiveJudgment matches any judgment that is not dom-
commit is at least proportional to the size of the model anyway,                  inated at all by any judgment, i.e. there is no corresponding
unless a sophisticated fine-grained diff solution is applied.                     match of the domination query. Note that this is a negative
   On the other hand, online collaboration is characterized by                    composition.
frequent and short transactions, each of which change only a                    strongConsequence computes                         the       propagated
small part of the model. In case of larger models, response                       consequences of effective judgments; it matches pairs
times would suffer greatly if the entire model had to be                          of judgments j = ha, o, p, ψ, πi and j 0 = ha0 , o0 , p0 , ψ 0 , π 0 i
re-processed upon each small change. Therefore, we aim to                         where j is an effectiveJudgment and j 0 = jha0 ,o0 i . For
obtain the effective permission function by an incremental                        strong consequences, π = π 0 is also required. The results
computation.                                                                      are computed as a union of cases, two for each kinds
   The evaluation of access control queries and the actual en-                    of dependency; one where a dominant lower bound on a
forcement of permissions is also performed incrementally [6].                     dependant propagates a lower bound consequent judgment
It would seem natural to try to express the conflict resolution                   to the dependee asset, and one where a dominant upper
and derivation of effective permissions as model queries, and                     bound on a dependee propagates an upper bound consequent
use the same technology [31], [5] that already provides the                       judgment to the dependant asset. In case of object assets,
incremental evaluation of access control queries.                                 such dependencies are found between the read and write
   In the following, we describe our efforts to reformulate                       operations of the same asset, and between contained and
the algorithmic conflict resolution process into a declarative                    container objects (see Sec. III-C).
computation. We use the formalism of recursive graph queries                    weakConsequence is constructed similarly, except the con-
(Datalog [16]), specifically the V IATRA syntax.                                  sequent has a constant, low priority.
     Listing 3 Naive solution in V IATRA syntax (extracts)
 1   pattern judgment(user,asset,op,bound,dir,prio)
 2   { find explicitJudgment(user,asset,op,bound,dir,prio);
 3   } or {
 4     find relaxedJudgment(user,asset,op,bound,dir,prio);
 5   } or {
 6     find strongConsequence(user,asset,op,bound,dir,prio);
 7   }
 8   pattern relaxedJudgment(user,asset,op,bound,dir,prio)
 9   { find domination(user,asset,op,_,dir,prio,bound);
10   }
11   pattern effectiveJudgment(user,asset,op,bound,dir,prio)
12   { find judgment(user,asset,op,bound,dir,prio);
13      neg find domination(user,asset,op,bound,dir,prio,_);                    Figure 4: Dependency Graph of the Naive Queries
14   }
15   pattern domination(user,asset,op,dBound,dDir,dPrio,eBound)
16   { find judgment(user,asset,op,dBound,dDir,dPrio);
17      find effectiveJudgment(user,asset,op,eBound,eDir,ePrio);
18      find permissionOutOfBound(eDir,eBound,dBound);
19      eDir!=dDir;                                                        no unprocessed judgments in the permission set that could
20   }                                                                     dominate it, and of course already processed judgments are
21   pattern strongConsequence(user,dAsset,dOp,dBound,dir,prio)
22   { // Case 1: read vs write, AT_LEAST                                  not in conflict with j and thus do not dominate it (otherwise j
23      find effectiveJudgment(user,eAsset,eOp,eBound,dir,prio);           would have been relaxed and removed earlier when they were
24      dAsset == eAsset; dir == BoundDirection::AT_LEAST;
25      eOp == SecurityOperation::WRITE;                                   processed); consequently, the effectiveJudgment query
26      eBound == WriteLevels::ALLOW_WRITE;                                would match j. Conversely, if the effectiveJudgment
27      dOp == SecurityOperation::READ;
28      dBound == ReadLevels::ALLOW_READ;                                  query matches the judgment j of priority π, that means no
29   } or {...} // Other cases                                             other higher-priority effective judgment dominates it, therefore
                                                                           (by the induction hypothesis) the original algorithm never
                                                                           eliminates it from the permission set, and it is eventually
        Note that for a given asset and operation, in addition to the      selected as an effective judgment.
     strictest effective upper or lower bound, there can additionally
     occur less strict, superfluous judgments. It is possible to           C. Non-Stratifiability
     eliminate them based on subsumption by stricter effective
     judgments. If subsumed judgments are then eliminated from                A significant flaw of the naive reformulation in Sec. V-B is
     the essential judgements, then their consequences won’t be            revealed when we consider how the results of these queries
     propagated, and some computational cost can be saved. The             are derived from each other.
     simplest solution is probably to adjust domination so that it            Not counting extensional relations, the query judgment
     does not check whether the bound direction of the dominated           derives from relaxedJudgment, strongConsequence and
     judgment is opposite to the dominant one (i.e. remove the             weakConsequence as depicted in Fig. 4. The latter
     last line of domination in Lst. 3), then in addition to actual        two also derive their results from effectiveJudgment.
     dominations, it will also match most such subsumed judgments          The relaxedJudgment references domination, while
     (except for the case where a judgment is subsumed by another          domination uses judgment and effectiveJudgment. Fi-
     one in the same priority class).                                      nally, effectiveJudgment is computed from judgment,
        The effective permission function is finally obtained as           permissionOutOfBound a negation of domination.
     the result set of the effectiveJudgment query, where the                 It is immediately obvious that this is a recursive query
     strictest lower and upper bounds will coincide (see proof             structure, e.g. judgment refers indirectly to domination
     in [10]). Let us now investigate the correctness of this solution.    which refers to judgment again. Fortunately, it is possible to
           Proposition: This group of queries yield the same effec-        evaluate recursive queries (there are even multiple incremental
     tive permission set as Alg. 1.                                        strategies [17]).
           Proof sketch: One has to consider the way of determining           However, these strategies require a property of the
     the set of effective judgments, as the rest follows fairly            query structure called stratification [16], which the refor-
     trivially. The original algorithm iteratively selected the highest-   mulated conflict resolver does not exhibit. Informally, a
     priority yet-unprocessed judgment and designated it as an             Datalog program is stratified if there are no negations
     effective judgment (by putting it into the processed set).            used in the cyclic references between predicates (i.e. re-
     By contrast, here judgments are considered effective when             lations or patterns). In our case, a counterexample would
     they are not dominated by any other judgment. It takes some           be effectiveJudgment negatively referring domination,
     thinking to see that the two conditions yield the same results.       which in turn uses effectiveJudgment.
     We use downwards induction by priority class; assume that                Typical query engines only handle stratified query struc-
     the two versions of the effective permission set are equivalent       tures, as non-stratified ones do not even have a single accepted
     above priority class π. When the original algorithm selects           semantics [16], and 2-valued semantics are often not possible.
     a dominant judgment j of priority π as the new effective              See for instance the famous example of a non-stratified Data-
     judgment, the priority-based ordering ensures that there are          log program “this sentence is a lie”.
   Fortunately, there are a few relaxations of the criteria for        executed with an arbitrary computation order chosen by the
stratifiability. Recursions can still have definite (2-valued)         query engine. Ordering by rule priority is a highly application-
semantics (and evaluation algorithms) if they are locally [21],        specific optimization, and there is no standard way to make a
modularly or at least weakly [24] stratifiable. Informally, these      query engine such as V IATRA aware of it.
relaxed notions of stratification investigate the dependencies
between individual tuples (so-called ground atoms) as opposed          E. Improved Query Structure
to whole relations; it is sufficient if there is no negation in           The previous sections identified two significant issues with
circular references between tuples (in the ground Datalog              the naive reformulation of the access control conflict resolution
program). The subtle differences between local, modular and            problem, stratifiability and performance. Still, we do not
weak stratification manifest themselves in the ways how                give up on using a general-purpose query tool to provide
already known facts are used to cull unnecessary (e.g. unsat-          incremental evaluation; instead, we propose a way to modify
isfiable) references before cycles are evaluated to be negation-       the query structure such that it avoids both problems.
free; the formal details are not explored here.                           Fortunately, the solutions to both issues involve the same
   Although the query structure of Sec. V-B is neither strat-          weak ordering of tuples based on priority class. We therefore
ifiable nor locally stratifiable, it is weakly and even mod-           propose to apply partial grounding, where given a policy
ularly stratifiable. The reason is that the only occurrence            of k priority classes, we substitute all k values into each
of negation is between predicates effectiveJudgment and                priority variable of the query, blowing up each predicate into
domination; however, a judgment may only be dominated                  k disjoint shard predicates (k 2 in case of domination where
by higher-priority judgments. After eliminating judgment pairs         two judgments of different priority are involved). Priority
from domination for which the priority comparison con-                 comparisons can be statically evaluated in this case.
straints fail (which is allowed in modular, but not in local              There is one corner case where negative recursion still
stratification), we are left with no tuple-level negative cycles.      persists, despite sharding the predicated according to priority:
   Although modular stratifiability shows the existence of 2-          the effectiveJudgment query for a given priority class
valued semantics, it is not necessarily compatible with all            negatively calls the domination relation for the same priority
evaluation strategies, especially incremental ones. Even if a          (of the dominated judgment), which is in turn derived from
given strategy is guaranteed to yield correct results, concrete        dominated judgment matches of that priority, that on one
tools such as V IATRA may pessimistically refuse to evaluate           branch rely on strongConsequence matches, which call
a query structure that is not stratifiable (as detecting e.g. local    effectiveJudgment, all of the same priority level. We
stratification may be undecidable [21]).                               propose the following solution: we replace domination with
                                                                       dominationBy that will no longer imply that a dominated
D. Performance Considerations                                          judgment exists; it merely asserts that an effective judgment
   Beyond the question of stratification, the recursive query          exists at a given priority, that would dominate any lower-
structure also introduces performance challenges.                      priority judgment at the given asset and the given permission
   Imagine a single-root containment hierarchy consisting of n         bound. This way the negative recursion is averted.
objects altogether. Suppose we define k separate access control           For priority class π, we define the following predicates (see
rules in k different priority classes, each of which applies to the    also Lst. 4):
root object, such that every other rule (those in even priority        judgmentπ matches all inferred judgments j = ha, o, p, ψ, πi
classes) sets the read permission to allow, while the rest of the        of priority class π, computed as the union of explicit judg-
rules set it to deny. In this case, query evaluation performance         ments in class π, the strong and weak consequent judgments
depends greatly in the order of computations, even if the end            in class π, and the relaxed forms of dominated judgments in
result is guaranteed to be the same.                                     class π.
   If the query engine happens to propagate tuples in the              relaxedJudgmentπ identifies judgments of priority class π
ascending order of the priorities of corresponding judgments,            that are dominated (see next query) by any priority π 0 > π,
then first all n objects are set to invisible by the lowest priority     and computes their relaxed form (inheriting the bound of the
rule, then the next rule is found to dominate the previous one           dominant judgment).
and all n objects are made visible again, etc., until finally the      dominationByπ will match (independently of the existence
effective permissions are obtained in O(n ∗ k) steps.                    of any dominated judgments) all effective judgments j =
   If, on the other hand, the query engine propagates tuples in          ha, o, p, ψ, πi ∈ effectiveJudgmentπ of priority π and all
the order of descending priority, then the final read permissions        potential bounds p0 for the corresponding asset and operation
are set immediately in the highest priority class , and then the         that would be dominated by it in local conflict (p0 ψp for
rest of the rules are merely dominated, but never propagated.            ψ ∈ Ψ = {>, <}).
This leads to O(n + k) steps of computation.                           effectiveJudgmentπ filters judgmentπ to those judg-
   Altogether, if the evaluation follows the original procedure          ments that are not dominated, i.e. there is no corresponding
in Alg. 1 and processes high-priority rules first, then (strong)         match of dominationByπ0 for any π 0 > π.
consequences are never overruled, minimizing the amount of             strongConsequenceπ computes the propagated conse-
work to be done. Unfortunately, declarative queries can be               quences of effective judgments at class π.
     weakConsequenceπ analogously.                                       improvements (beyond the considerations of Sec. V-D) are
        In the above queries, the priority class comparisons “π 0 >      left as future work.
     π” are statically evaluated, and the generated disjunctions only
     include the clauses where the result is true.                                           VI. R ELATED W ORK
        With this solution, the query structure is now stratifiable,        File-based Access Control. Off-the-shelf file systems typ-
     addressing the concerns of Sec. V-C. Also, a query engine           ically require resources (files and folders) to be explicitly la-
     evaluating (or updating, in case of incrementality) it can          beled with permissions that take the form of an Access Control
     process individual predicates in their topological order, which     List (ACL), or the simplified form user/group/others. An ACL
     addresses the issue raised in Sec. V-D.                             consists of entries (judgments) regarding which user/subject is
        Once stratification is achieved, let us take a look at what      granted or denied permission for a given operation. Conflict
     forms of (positive) recursion remain, keeping in mind that          resolution is usually priority-based (first entry applies) within
     these no longer pose an obstacle to incremental matching.           the access control list, and restrictive among type II and type
     First, relaxedJudgmentπ contributes to judgmentπ and                III conflicts (e.g. contents of a hidden folder cannot be seen,
     vice versa. Note that there is no circularity on the tuple level,   regardless of ACLs inside).
     as the original dominated judgments (as well as subsumed               File-based solutions can be directly applied to MDE, but
     ones) are always farther from the effective judgment than their     cannot provide fine-grained access control, where different
     relaxed versions. Moreover, judgmentπ is partially expressed        parts of a model file have different permissions. Our policies
     from strongConsequenceπ , which finds consequences of               are fine-grained, use implicit rules (so that model elements
     effectiveJudgmentπ that of course uses judgmentπ ; in               do not have to be explicitly annotated with judgments, which
     this case it depends on our internal consistency constraints        is difficult to manually maintain as the model evolves), and
     whether consequences can cyclically justify each other (in the      respect the modeling-specific challenges of consistency (such
     simple cases described in this paper, they can’t). In application   as permission dependencies of cross-references); all the while
     scenarios where we know that there are no tuple-level cycles,       being more flexible in the conflict resolution method.
     the fast default algorithm suffices to efficiently evaluate re-        Access Control for XML Documents. A number of
     cursive queries; for other cases, V IATRA provides the more         standards such as XACML [15] (OASIS standard) provide
     complex DRed algorithm [17] as well, guaranteeing correct           fine-grained access control for XML documents. These type
     incremental maintenance for any stratified query structure.         of documents are similar to models in a way, that they
                                                                         consists of nodes with attributes that may contain other
     Listing 4 Refined solution in V IATRA syntax (extracts)             nodes. XACML provides several combining algorithms to
 1   pattern relaxedJudgement_at_0(user,asset,op,bound,dir){
                                                                         select from contradicting policies. Similarly to our solution,
 2     find judgement_at_0(user,asset,op,dBound,dir);                    it may use external and internal priorities together (ordered-
 3     find domination_by_1(user,asset,op,_dBound,bound);
 4   } or {
                                                                         (deny/permit)-overrides) or only internal priorities (unordered-
 5     find judgement_at_0(user,asset,op,dBound,dir);                    (deny/permit)-overrides). In [12], fine-grained access control
 6     find domination_by_2(user,asset,op,_dBound,bound);
 7   } or {...}
                                                                         is formalized using XPath for XML documents, which claims
 8   pattern effectiveJudgement_at_0(user,asset,op,bound,dir){           that the visibility of a node depends on its ancestors, thus when
 9     find judgement_at_0(user,asset,op,bound,dir);
10     neg find domination_by_1(user,asset,op,bound,_);
                                                                         a node is granted access, then access is also granted to its
11     neg find domination_by_2(user,asset,op,bound,_);                  descendants. However, other dependencies are not discussed
12     // ...
13   }
                                                                         related to XML Documents, while our approach [10] also
14   pattern domination_by_1(user,asset,op,dBound,dir){                  considers e.g. cross-references.
15     find effectiveJudgment_at_1(user,asset,op,eBound,dir);
16     find permissionOutOfBound(dir,eBound,dBound);
                                                                            Context-aware Access Control RDF Stores. Models can
17   } // ...                                                            be persisted into triples to store them in triple or quad stores
                                                                         (Neo4EMF[4], EMF Triple). Graph-based access control is
        Finally, a note on space and time cost: a straightforward        a popular strategy for many RDF stores (4store [14], Vir-
     upper bound on the size of the match sets can be obtained by        tuoso , IBM DB2) developed for storing large RDF data.
     taking the Cartesian product of the domains of query variables.     In case of RDF, fine-grained specification of access control
     In our example, there are 3 priority classes, 2 controlled          permissions are defined at triple level. In [1], a graph-based
     operations, 3 permissions levels (both for read and write),         policy specification language proposed over SPARQL [22],
     etc.; in the end, for a fixed security policy, the upper bound      but resolution of contradicting rules are not discussed. Amit
     is proportional to both the model size (number of assets) and       Jain et. al. [18] propose an access control model for RDF
     the number of active (e.g. simultaneously connected) users. In      and a two-level conflict resolution strategy that also takes
     the non-recursive case, incrementally maintaining the result        inconsistencies into account similar to our solution. But, it
     of queries has time complexity proportional to the size of the      uses only restrictive resolution without any configuration of
     change (in the inputs, in the results, and also in any internal     default values or priorities between rules.
     cache structure), regardless of the size of the unchanged parts.       Collaborative Modeling Environments. Currently, fine-
     For recursive queries, such a straightforward linear relationship   grained access control is not considered in the state of the
     can not always be established; performance analysis and             art tools of MDE such as MetaEdit+[30], VirtualEMF[8],
WebGME[19], EMFStore [28], GenMyModel [2], Obeo De-                           [6] Gábor Bergmann, Csaba Debreceni, István Ráth, and Dániel Varró.
signer Team [20], MDEForge [3] or the tools developed                             Query-based Access Control for Secure Collaborative Modeling using
                                                                                  Bidirectional Transformations. In MoDELS’16, pages 351–361, 2016.
according to [13]. See also the broader survey in [23].                       [7] Matt Blaze and Angelos D Keromytis. The keynote trust-management
   The generic framework CDO [27] (used e.g. in [20]) pro-                        system version 2. 1999.
vides both online collaboration and role-based access control                 [8] Cauê Clasen, Frédéric Jouault, and Jordi Cabot. VirtualEMF: A
                                                                                  model virtualization tool. In Advances in Conceptual Modeling. Recent
with type-specific (class, package and resource-level) permis-                    Developments and New Directions, pages 332–335, 2011.
sions, but no facility for instance level access control policy               [9] Penn University DARPA VehicleFORGE. TrustForge: Flexible Access
specifications. However, there is a pluggable access control                      Control for VehicleForge.mil Collaborative Environment, 2012.
                                                                             [10] Csaba Debreceni, Gábor Bergmann, István Ráth, and Dániel Varró.
mechanism that can specify access on the object level; it                         Deriving Effective Permissions for Modeling Artifacts from Fine-grained
should be possible to integrate fine-grained solutions such as                    Access Control Rules. In COMMitMDE@MoDELS’16, pages 17–26,
the currently proposed system.                                                    2016.
                                                                             [11] Matthias Farwick, Berthold Agreiter, Jules White, Simon Forster, Nor-
   The collaborative hardware design platform VehicleFORGE                        bert Lanzanasto, and Ruth Breu. A web-based collaborative metamodel-
stores their model in graph-based databases and has an access                     ing environment with secure remote model access. In Web Engineering,
control scheme TrustForge [9] that uses an implementation                         ICWE 2010, Vienna, Austria, July 5-9, volume 6189 of LNCS, pages
                                                                                  278–291. Springer, 2010.
of KeyNote [7] trust management system. This system is re-                   [12] Irini Fundulaki and Maarten Marx. Specifying access control policies
sponsible for evaluating the request addressed to the database,                   for XML documents with XPath. In 9th ACM Symposium on Access
which can be configured in various ways. It supports unlimited                    Control Models and Technologies, pages 61–69, 2004.
                                                                             [13] Jesús Gallardo, Crescencio Bravo, and Miguel A. Redondo. A model-
permission levels and it is also able to handle consistency                       driven development method for collaborative modeling tools. J. Network
constraints by adding them as assertions. Conflict resolution                     and Computer Applications, 35(3):1086–1105, 2012.
strategies are not discussed. AToMPM [26] provides fine-                     [14] Garlik. 4store. http://4store.org/trac/wiki/GraphAccessControl.
                                                                             [15] S. Godik and T. Moses (eds). eXtensible access control markup language
grained role-based access control for online collaboration;                       (XACML) version 1.0. 02 2003.
no offline scenario or query-based security is supported,                    [16] Todd J. Green, Shan Shan Huang, Boon Thau Loo, and Wenchao Zhou.
though. Access control is provided at elementary manipulation                     Datalog and recursive query processing. Found. Trends databases,
                                                                                  5(2):105–195, November 2013.
level (RESTful services) in the online collaboration solution                [17] Ashish Gupta, Inderpal Singh Mumick, and V. S. Subrahmanian. Main-
of [11].                                                                          taining views incrementally (extended abstract). In Proc. of the Int.
                                                                                  Conf. on Management of Data, ACM, pages 157–166, 1993.
                       VII. S UMMARY                                         [18] Amit Jain and Csilla Farkas. Secure resource description framework:
                                                                                  an access control model. In 11th ACM Symposium on Access Control
   To support rule-based fine-grained access control under                        Models and Technologies, pages 121–129, 2006.
internal consistency constraints, we have taken a significant                [19] Miklos Maroti et al. Next Generation (Meta)Modeling: Web- and Cloud-
step towards efficient online collaboration by reformulating                      based Collaborative Tool Infrastructure. In 8th Multi-Paradigm Modeling
                                                                                  Workshop, Valencia, Spain, 09/2014 2014.
the permission assignment problem into a special class of                    [20] Obeo.      Obeo designer team.          https://www.obeodesigner.com/en/
Datalog programs that can be incrementally evaluated (taking                      collaborative-features.
advantage of the priority hierarchy). We have also sketched a                [21] Luigi Palopoli. Testing logic programs for local stratification. Theoret-
                                                                                  ical Computer Science, 103(2):205 – 234, 1992.
proof of correctness for the reformulation. As a quick proof                 [22] E. Prud’hommeaux and A. Seaborne. SPARQL query language for RDF.
of concept 1 , we have implemented and evaluated queries                          07 2016.
according to this scheme for an example policy.                              [23] J. Di Rocco, D. Di Ruscio, L. Iovino, and A. Pierantonio. Collaborative
                                                                                  repositories in model-driven engineering [software technology]. IEEE
   In the future, we plan to (a) implement an automated                           Software, 32(3):28–34, May 2015.
translation from an arbitrary policy to such a query structure,              [24] Kenneth A. Ross. Modular stratification and magic sets for datalog
(b) set up benchmarks to study (and, if necessary, improve)                       programs with negation. J. ACM, 41(6):1216–1266, November 1994.
                                                                             [25] D. Di Ruscio, M. Franzago, I. Malavolta, and H. Muccini. Envisioning
the performance of the solution in practice, (c) investigate                      the future of collaborative model-driven software engineering. In ICSE-
incrementality with respect to policy changes.                                    C’17, pages 219–221, May 2017.
                                                                             [26] Eugene Syriani, Hans Vangheluwe, Raphael Mannadiar, Conner Hansen,
                            R EFERENCES                                           Van Mierlo, and Huseyin Ergin. AToMPM: A Web-based Modeling
 [1] Fabian Abel et al. Enabling adanced and context-dependent access             Environment. MODELS 2013 Demonstrations Track, 2013.
     control in RDF stores. In The Semantic Web, 6th Int. Semantic Web       [27] The Eclipse Foundation. CDO. http://www.eclipse.org/cdo.
     Conf., 2nd Asian Semantic Web Conf., pages 1–14, 2007.                  [28] The Eclipse Foundation. EMFStore. http://www.eclipse.org/emfstore.
 [2] Axellience. GenMyModel. http://www.genmymodel.com.                      [29] The Eclipse Project. Eclipse Modeling Framework. http://www.eclipse.
 [3] Francesco Basciani, Juri Di Rocco, Davide Di Ruscio, Amleto Di Salle,        org/emf/.
     Ludovico Iovino, and Alfonso Pierantonio. MDEForge: an extensible       [30] Juha-Pekka Tolvanen. MetaEdit+: Domain-specific modeling and prod-
     web-based modeling platform. In CloudMDE@MoDELS, 2014.                       uct generation environment. In Software Product Lines, 11th Int. Conf.
 [4] Amine Benelallam, Abel Gómez, Gerson Sunyé, Massimo Tisi, and                SPLC 2007, Kyoto, Japan, pages 145–146, 2007.
     David Launay. Neo4EMF, A scalable persistence layer for EMF models.     [31] Zoltán Ujhelyi, Gábor Bergmann, Ábel Hegedüs, Ákos Horváth,
     In Modelling Foundations and Applications - 10th European Conf.,             Benedek Izsó, István Ráth, Zoltan Szatmári, and Dániel Varró. EMF-
     ECMFA 2014, pages 230–241, 2014.                                             IncQuery: An integrated development environment for live model
 [5] Gábor Bergmann, István Dávid, Ábel Hegedüs, Ákos Horváth, István             queries. Science of Computer Programming, (0):–, 2014.
     Ráth, Zoltán Ujhelyi, and Dániel Varró. Viatra 3: A reactive model      [32] Jon Whittle, John Hutchinson, and Mark Rouncefield. The state of
     transformation platform. In Theory and Practice of Model Transforma-         practice in model-driven engineering. IEEE Software, 31(3):79–85,
     tions - ICMT 2015, L’Aquila, Italy, July 20-21, pages 101–110, 2015.         2014.

  1 Available         at                https://github.com/bergmanngabor/
CommitMDE17reproduction