<!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>The Company Control Problem, Reactively</article-title>
      </title-group>
      <contrib-group>
        <contrib contrib-type="author">
          <string-name>Davide Magnanimi</string-name>
          <xref ref-type="aff" rid="aff0">0</xref>
          <xref ref-type="aff" rid="aff1">1</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Stefano Ceri</string-name>
          <xref ref-type="aff" rid="aff1">1</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Luigi Bellomarini</string-name>
          <xref ref-type="aff" rid="aff0">0</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Davide Martinenghi</string-name>
          <xref ref-type="aff" rid="aff1">1</xref>
        </contrib>
        <aff id="aff0">
          <label>0</label>
          <institution>Banca d'</institution>
          <country country="IT">Italia</country>
        </aff>
        <aff id="aff1">
          <label>1</label>
          <institution>Dipartimento di Elettronica, Informazione e Bioingegneria</institution>
          ,
          <addr-line>Politecnico di Milano</addr-line>
          ,
          <country country="IT">Italy</country>
        </aff>
      </contrib-group>
      <abstract>
        <p>The Company Control Problem (CCP) consists in understanding who exerts decision power in companies, and is of crucial interest to central banks, financial intelligence units, and market regulators. Computing control relationships is computationally expensive and involves traversing a shareholding graph that may comprise hundreds of millions of nodes and billions of edges and properties. This graph is highly volatile, thus it is unafordable to entirely recompute the control relationships for each change. Our incremental, rule-based formalization of CCP ofers a practical and scalable solution to the problem.</p>
      </abstract>
    </article-meta>
  </front>
  <body>
    <sec id="sec-1">
      <title>1. Introduction</title>
      <p>Who exerts decision power in a company? Given a national or international network of millions
of entities interconnected by billions of shareholding relationships, who controls—directly or
indirectly—a given company? This question, known as the Company Control Problem (CCP) [1],
is of great interest to banks, national central banks [2], financial intelligence units, regulatory
and supervisory authorities, and Fintech firms. Indeed, it impacts their core business: loan
granting processes, creditworthiness evaluation and know-your-customer onboarding procedures
are hinged on company control, to spot any possible conflict of interest between borrowers
and lenders. In banking supervision and anti-money laundering, the authorities need to identify
the actual centers of power so as to accurately detect the drivers and the ultimate beneficiaries
of financial misconducts. In monetary policy in the Eurosystem, authorities oversee the credit
market by assessing the so-called collateral eligibility [3], that is, the independence of the
collateral issuer with respect to the entities involved in monetary policy operations, in order to
reduce the credit risk. Company control is a relevant topic also in the broader macroeconomic
community [4, 5], where market concentration sparks recurring debates.</p>
      <p>Industrial Scenario. The Bank of Italy holds a company network in the form of a Company
Knowledge Graph (KG), stored as a property graph [6]. The nodes denote individuals and
companies, and the edges represent shareholding relationships (or ownerships), with the respective
percentage. Since the Bank of Italy operates as a regulator and supervisor in the European
System of Central Banks, the graph, which was initially focussed on Italian companies, is being
gradually expanded to span the entire EU-level space, with hundreds of millions of nodes and
billions of edges and properties.</p>
      <p>A core element of the graph are control edges, which are derived “ controls ” relationships
computed from the shareholding edges according to the following definition [1]:
A company  controls a company  if  (i) directly owns the majority of  shares, or (ii) controls
a set of companies that, possibly together with  itself, jointly hold the majority of .</p>
      <p>A static pre-computation of control edges is not suitable for uprising economic and
financial applications, which need to capture dynamic phenomena involving frequent changes in
ownership edges. A timely “reactive” computation of control edges is crucial for a host of
institutional services of the Bank of Italy, which call for immediate action once a change of
control is detected. Also in the analytical perspective, timeliness in updating control edges
matters, e.g., when analysts need to perform interactive “what-if analysis” to seize the systemic
efect on control, by simulating changes of ownership.</p>
      <p>As a matter of fact, a large category of diferent industrial scenarios share a common trait:
a very limited number of changes in the ownership edges in a very small time interval cause
changes in control relationships, potentially in distant areas of the KG, to be accounted for as
eficiently as possible.</p>
      <p>Example 1. Consider now the excerpt in Figure 1 of our KG: an analyst wants to swiftly assess
the impact of the acquisition of 26% of the shares of Company 3 undertaken by a non-EU company
1. In fact, it would change the controllers of Companies 5 and 9, which are of strategic national
relevance, and potentially also afect others. Company 1 already controls 39% of Company 3, and,
with a further 26% acquisition would gain control of the majority. Consequently, Company 1 would
exert control over Company 7, the strategic 9, as well as 6, 8, and 10, already controlled by 3.
Finally, via the controlled Companies 3 and 4, our non-EU shareholder would take over the strategic
Company 5 as well and, with a cascade efect, also other companies controlled by 5, 7, 9, and 10.■</p>
      <p>As of now, the Bank of Italy computes the control relationships between companies in a batch
fashion: daily ownership variations are collected from specific data sources, the ownership
edges are updated and all the control relationships are finally recomputed. Considering the
current rate of thousands of changes per day, rapidly soaring for the EU-level role of the Bank,
not only is the batch approach incompatible with the mentioned on-line applications, but also
causes longer and longer periods with outdated data, unacceptable in practice.
Goal. In this work, we consider a declarative specification of the CCP problem in Datalog [ 7, 8]
extended with features of practical utility such as aggregation, negation, and inequalities, and
introduce a reactive formulation of it as an inference task that exploits changes of ownership
so as to locally and eficiently update control relationships. We propose a production-ready
system that provides our analysts with a reactive Knowledge Graph, having continuously and
incrementally updated control edges. We implemented our solution in the Vadalog System [9, 10],
a state-of-the-art reasoner using the Vadalog language of the Datalog± family [11].
Contribution. We provide a declarative, incremental, reasoning-based approach to the
computation of company control relationships over large and frequently updated Company Knowledge
Graphs, which we name reactive control computation. In particular, we propose a reactive
logic-based formulation of the CCP. We introduce specific predicates to reason on insertions
and deletions of shareholding relationships in the graph and use them to incrementally update
control edges. Our formulation leverages the topology of the graph to exploit forms of update
locality and avoid massive cascade updates or full recomputation, as in the batch approach.</p>
      <p>In an extended version of this work [12], we also validate our approach in many experimental
settings comprising real snapshots of the Italian Company KG of the Bank of Italy as well as a
large number of synthetic graphs, of various sizes and topologies.</p>
    </sec>
    <sec id="sec-2">
      <title>2. The Company Control Problem</title>
      <p>Before analyzing the CCP, let us first briefly present the Italian Company Knowledge Graph.
The Company Knowledge Graph contains detailed information about companies, individuals,
corporate events, many other entities, and the relationships among them. In this work, we
focus on entities and relationships regarding ownership (of shares) relationships, which connect
subsidiaries to their shareholders (either other companies or individuals), and define an ownership
graph  = (, , ) as a directed, weighted graph in which  is the set of nodes representing
such companies or individuals;  is the set of directed edges, with  ⊆  2, that represent
shareholding relationships; and  :  → (0, 1] is a labeling function that assigns to each edge
 = (, ) ∈  a label () representing the percentage of total equity of company  held
by the shareholder . Clearly, for every node  ∈  , we require that ∑︀∈pred ((, )) ≤ 1,
with pred indicating the set of nodes  ∈  that are shareholders of .</p>
      <p>For our purposes, we model the ownership graph as a database  of facts Own(, , ),
where  is a shareholder (company or individual),  is a company, and  is the owned share
percentage. For example, the graph in Figure 1 would be encoded as  = {own(1, 2, 0.72),
own(2, 4, 0.86), own(2, 3, 0.39), own(4, 5, 0.23), . . .}.</p>
      <p>We encode the CCP and our solution as an inference task in a Datalog-based formalism.
The Company Control Problem. Our definition of the CCP is majority-based and broadly
accepted in the corporate economics community [5]. Let us focus on a portion of Figure 1.
Shareholder 3 directly owns 100% and 80% of the total equity of 6 and 7, respectively. Therefore,
shareholder 3 obtains the control over them, as well as over the shares they own of other
companies. In particular, 3 is able to exert control on firm 8, as 6 directly controls it. Consequently,
by controlling 7 and 8, the shareholder 3 also controls the sum of the shares of 9 they own. As
the sum is above 50%, it allows 3 to control company 9 as well.</p>
      <p>
        The CCP has been studied in the database literature and proved to be quadratic, in its pairwise
decision formulation, that is, given an ownership graph and two companies  and  from this
graph, decide whether a control relationship between them holds [1]. In this paper, we will
focus on the more general inference task of deriving all the control relationships. Thanks to its
recursive nature, an elegant Vadalog formulation of CCP can be provided as follows [1]:
company() → control(, )
(
        <xref ref-type="bibr" rid="ref1">1</xref>
        )
(2)
control(, ), own(, , ) ∧  = sum() ∧  &gt; 0.5 → control(, )
Given that every company  controls itself (Rule 1), by Rule 2,  controls  if the sum of the
shares  of  owned by companies , over all companies  controlled by , is above 50%.
      </p>
    </sec>
    <sec id="sec-3">
      <title>3. Reactive Company Control</title>
      <p>Given the company KG, a materialization and batch approach to the CCP would consist in
periodically deleting all the control edges, considering the most recent version of the graph,
and computing a new materialization of the relationships—unafordable in practice, as we have
discussed. Conversely, in this section we introduce an incremental solution, which “reacts” to
changes and updates the control edges.</p>
      <p>Towards an incremental approach, we enrich our vocabulary of Vadalog atoms with adorned
versions. In detail, given a set of changes of the KG performed in the interval [1, 2], for an
atom , we denote as new an atom binding to all facts for  holding after 2; as +, an atom
binding to all the facts for  inserted during [1, 2]; as − , an atom binding to all the facts for 
that have been removed during [1, 2]; finally,  binds to all facts holding before 1.</p>
      <p>Then, in our context we will refer to the set of ownerships holding before (own) and after
the update (newOwn); to those inserted (own+) and removed (own− ) by the update; to the old
materialization of the control relationship (control) and to the facts to be inserted (control+)
or deleted (control− ) to materialize the new one (newControl). For the sake of simplicity, we
will refer to a generic update (interval) and will not explicitly refer to [1, 2] in the predicate
syntax. We model modifications to share amounts as a deletion of the respective ownership fact
followed by a re-insertion. Inserted or deleted nodes are represented by adding (own+) resp.
removing (own− ) all the ownership facts they participate in.</p>
      <p>Our framework models the scenario at hand as an instance of the materialization maintenance
problem [13, 14, 15, 16], in particular, as the task of maintaining the materialization of Σ( ),
where Σ is the company control program and  is the database encoding the KG. We adopt
a Delete/Rederive (DRed) [17] strategy to handle deletions: we first delete the afected control
facts, identifying them with an overstimation/refinement process. Then, we apply the insertions
and extend  with all the consequences of the inserted facts.</p>
      <p>More precisely, given  and a set of updates occurred during [1, 2] that can be referred to via
adorned predicates, the materialization maintenance task is solved by two sets of Vadalog rules
Σ  and Σ  with two associated inference tasks that, respectively, infer the sets C− = Σ ()
of control facts to be deleted from , and the set C+ = Σ  ( ∖ C− ) to be added to  ∖ C− . In
total, ( ∖ C− ) ∪ C+ is the updated version of Σ( ).</p>
      <sec id="sec-3-1">
        <title>3.1. Deletion rules (Σ)</title>
        <p>The rules of Σ  are conceptually organized in three groups that (i) identify the facts that are
potentially deleted as a consequence of ownership changes; (ii) for each of those facts, try
to identify alternative derivation paths; (iii) single out the facts deleted by group (i) and not
reinserted by group (ii).</p>
        <p>Group 1 - Potentially deleted controls. The rules of this group identify, by overestimation, the
control facts potDControl that are potentially deleted as a consequence of ownership changes.
This deletion event can take place in three scenarios, that we see next. For each scenario, we
present the rationale, the Vadalog rules, and an explanatory snippet. Each snippet ofers a
visual representation of the rule application, where deleted facts are denoted by red edges.
• Deletion of a direct ownership. The deletion of a direct ownership  →  reduces the total
shares of  controlled by . Consequently, a control relationship from  to  may not hold
anymore, as denoted by a new potDControl fact.
• Deletion of an indirect ownership. Let  control  via direct and indirect undertakings,
e.g., via . If the indirect undertaking is removed,  may lose its control on .</p>
        <p>own−
potDControl</p>
        <p>→
control control
own− (, , ) ∧ control(, ) → potDControl(, )


potDControl
control</p>
        <p>own−
potDControl
potDControl
control


(3)
(4)
(5)
control  own− control  own−
control(, ) ∧ own− (, , ) ∧ control(, ) → potDControl(, )
• Recursive propagation. If  controls  also via a controlled company  retaining shares of ,
a potential deletion of the control from  to  could cause  to lose its control on , recursively.
→</p>
        <p>→
potDControl</p>
        <p>control
potDControl</p>
        <p>potDControl</p>
        <p>control
potDControl</p>
        <p>own
control  control 
potDControl(, ) ∧ own(, ) ∧ control(, ) → potDControl(, )
own
Group 2 - Recomputing afected controlled shares. The rules of this group seek for
alternative derivations of the control relationships afected by ownership deletions.</p>
        <p>In this group, we recompute direct and indirect control shares only for the pairs of nodes
interested by a potDControl relationship, hence minimizing the portion of the traversed graph.
To find alternative derivations, given a potentially deleted control, we collect all the shares  of 
controlled by  via  into the predicate potDControlShare(x, z, y, q), so that they are eventually
aggregated. Rules 6 and 7 together represent the base case of this aggregation; Rules 8 and 9,
which are mutually recursive, represent the inductive case.</p>
        <p>To start, we need to introduce an auxiliary predicate to consider only the ownerships that
have not been deleted, i.e.: own(, , ) ∧ ¬own− (, , ) → stillOwn(, , ).</p>
        <p>potDControl(, ) ∧ stillOwn(, , ) → potDControlShare(, , , )
With Rule 7, we want to collect the shares of indirect controls. We consider the shares  for the
pairs  and  connected by a potentially deleted control, in the case  certainly controls some
other node , i.e., potDControl(, ) does not hold, and  still retains  shares of .
potDControl(, ) ∧ stillOwn(, , ) ∧ control(, ) ∧ ¬ potDControl(, )
→ potDControlShare(, , , )</p>
        <p>The goal of Rules 8 and 9 is to collect the pairs for which while potentially the control
may have been deleted, in fact, it is not, as alternative derivations do exist. Rule 8 creates
potStillControl facts, which witness that a control of  on  still exists if the sum of the newly
derived controlled shares (those computed by Rules 6, 7, and 9) is above 0.5.
potDControlShare(, , , ) ∧  = sum() ∧  &gt; 0.5 → potStillControl(, )
(8)</p>
        <p>In Rule 9 we collect the shares that  controls of  via , in the case the potentially deleted
control between  and  instead still holds (as witnessed by potStillControl facts produced by
Rule 8) as well as the ownership between  and .
potDControl(, ) ∧ potStillControl(, ) ∧ stillOwn(, , ) → potDControlShare(, , , )
(9)
Group 3 - Computing C− . We are now ready to single out the control facts to be removed in
the absence of alternative derivations (Rule 10).
(6)
(7)
potDControl(, ) ∧ ¬ potStillControl(, ) → control− (, )
(10)
Example 2. Let us consider the example in Figure 1 again and suppose Company 6
sells all its shares of 8, as captured by the fact own− (6, 8, 0.51). In Group 1, we obtain
potDControl(6, 8) and potDControl(3, 8) by Rules 3 and 4 respectively; potDControl(3, 9) and
potDControl(3, 10) by Rule 5, respectively. When recomputing the afected control shares, Group 2
produces only potDControlShare(3, 7, 9, 0.51) (Rule 7) and, therefore, potStillControl(3, 9)
(Rule 8). Company 3 still control 9 as the total controlled shares is above 50%. Rule 9 derives
potDControlShare(3, 9, 10, 0.8). Again, another still holding control is derived by Rule 8, i.e.,
potStillControl(3, 10). Note that the control facts of Company 3 on 8 and 6 on 8 do not exist any
longer. Finally, Rule 10 produces the deleted controls control− (6, 8) and control− (3, 8). ■
Applying C− . Given the outcome of the inference task Σ (), Rule 11 removes the deleted
control facts C− from . Note that we are actually performing a “virtual” deletion by producing
facts for stillControl by set diference.</p>
        <p>control(, ) ∧ ¬ control− (, ) → stillControl(, )
(11)</p>
      </sec>
      <sec id="sec-3-2">
        <title>3.2. Insertion rules (Σ )</title>
        <p>The rules of Σ  are organized in three groups that (i) identify the control facts that are potentially
added due to new ownerships; (ii) for each of those new control candidates, compute the
respective control shares; (iii) based on these shares, single out the actual new control facts.
Group 1 - Potentially inserted controls. The rules of this group identify three scenarios
in which it is possible to derive by overestimation new control facts potIControl whenever
new ownership relationships (own+) or, recursively, new controls (control+) are added. Let us
introduce the scenarios; we will use green edges to denote the added facts.
• Insertion of a direct ownership. The addition of a new ownership from  to  contributes
to the total shares of  controlled by  and a new control may arise.</p>
        <p />
        <p>own+
potIControl</p>
        <p>own+
potIControl
own+(, , ) ∧ ¬ stillControl(, ) → potIControl(, )
(12)
• Insertion of an indirect ownership. Let  be a company controlled by . The addition of
a new ownership from  to  contributes to the total shares of  that  controls, directly or
indirectly, possibly resulting in a new control.</p>
        <p>potIControl</p>
        <p>potIControl
stillControl 
own+
stillControl 
own+
stillControl(, ) ∧ own+(, , ) ∧ ¬ stillControl(, ) → potIControl(, )
(13)
• Recursive propagation. Let  own shares of . A new control (control+) from  to 
may contribute to the total amount of shares of , directly and indirectly, controlled by .
Recursively, this may lead to a new control from  to .</p>
        <p>potIControl


potIControl</p>
        <p>→
control+

newOwn
control+

newOwn
control+(, ) ∧ newOwn(, , ), ∧ ¬ stillControl(, ) → potIControl(, )
(14)
→
→


Group 2 - Computation of new controlled shares. In this group, we collect all the direct
(Rule 15) and indirect (Rule 16, 17) controlled shares in  ∖ C− between the pairs singled out
by potIControl facts.</p>
        <p>potIControl(, ) ∧ newOwn(, , ) → potIControlShare(, , , ) (15)
potIControl(, ) ∧ stillControl(, ) ∧ newOwn(, , ) → potIControlShare(, , , ) (16)
potIControl(, ) ∧ control+(, ) ∧ newOwn(, , ) → potIControlShare(, , , ) (17)
Group 3 - Computing C+. Finally, the new controls (control+) are derived by summarizing
all the newly computed controlled shares and selecting only those above 0.5.
potIControlShare(, , , ) ∧  = sum() ∧  &gt; 0.5 → control+(, )
(18)
Note that the new controls are in turn fed into Rule 14 and 17.</p>
        <p>
          Example 3. Let us suppose the candidate share acquisition operation in Figure 1 is settled
and the reactive approach is employed for updating controls. The fact own+(1, 3, 0.26) captures
the update. We obtain potIControl(
          <xref ref-type="bibr" rid="ref1">1, 3</xref>
          ) by Rule 12, and potIControlShare(1, 3, 3, 0.26) and
potIControlShare(1, 2, 3, 0.39) by Rules 15 and 16, respectively. As the sum of the two computed
controlled shares is above 50%, Rule 18 yields control+(
          <xref ref-type="bibr" rid="ref1">1, 3</xref>
          ). Then, by Rule 14 we generate
potIControl(
          <xref ref-type="bibr" rid="ref1">1, 5</xref>
          ), potIControl(
          <xref ref-type="bibr" rid="ref1">1, 6</xref>
          ), and potIControl(
          <xref ref-type="bibr" rid="ref1">1, 7</xref>
          ). By evaluating all the direct and
indirect contributions in the recursive activation of rules, we finally also obtain control+(
          <xref ref-type="bibr" rid="ref1">1, 5</xref>
          ),
control+(
          <xref ref-type="bibr" rid="ref1">1, 6</xref>
          ), control+(
          <xref ref-type="bibr" rid="ref1">1, 8</xref>
          ), control+(
          <xref ref-type="bibr" rid="ref1">1, 7</xref>
          ), control+(
          <xref ref-type="bibr" rid="ref1">1, 9</xref>
          ), and control+(
          <xref ref-type="bibr" rid="ref1">1, 10</xref>
          ). ■
Applying C+. Once the inference task Σ  ( ∖ C− ) has been completed, the obtained control
edges C+ are added to  ∖ C− with Rules 19 and 20, via a new control predicate (newControl).
stillControl(, ) → newControl(, )
control+(, ) → newControl(, )
(19)
(20)
        </p>
      </sec>
    </sec>
    <sec id="sec-4">
      <title>4. Conclusion</title>
      <p>We contributed a declarative, incremental, and reasoning-based formulation of the CCP, aimed
at solving the problem of eficiently updating an existing materialization of control edges in the
shareholding network held by the Bank of Italy. We put our logical formulation into action by
implementing and running it within the Vadalog System for logical reasoning.</p>
      <p>The framework, is currently in a pre-production stage, but has production ambitions, as we
intend to deploy and use it for multiple applications of the Bank of Italy.</p>
      <p>Acknowledgment. This work is part of Davide Magnanimi’s Executive PhD program at
Politecnico di Milano.
[2] L. Bellomarini, L. Bencivelli, C. Biancotti, L. Blasi, F. P. Conteduca, A. Gentili, R. Laurendi,
D. Magnanimi, M. S. Zangrandi, F. Tonelli, S. Ceri, D. Benedetto, M. Nissl, E. Sallinger,
Reasoning on company takeovers: From tactic to strategy, Data Knowledge Engineering
(2022).
[3] Guideline of the european central bank of 20 september 2011 on monetary policy
instruments and procedures of the eurosystem (ecb/2011/14), https://bit.ly/3VqqWtT, ????
[4] F. Barca, M. Becht, The control of corporate Europe, 2001.
[5] J. B. Glattfelder, Ownership networks and corporate control: mapping economic power in
a globalized world, Ph.D. thesis, 2010.
[6] R. Angles, The property graph database model, in: AMW, CEUR Workshop Proceedings,
2018.
[7] S. Abiteboul, R. Hull, V. Vianu, Foundations of Databases, 1995.
[8] S. Ceri, G. Gottlob, L. Tanca, What you always wanted to know about datalog (and never
dared to ask), TKDE (1989).
[9] L. Bellomarini, D. Benedetto, G. Gottlob, E. Sallinger, Vadalog: A modern architecture for
automated reasoning with large knowledge graphs, Information Systems (2020).
[10] T. Baldazzi, L. Bellomarini, M. Gerschberger, A. Jami, D. Magnanimi, M. Nissl, A. Pavlovic,
E. Sallinger, Vadalog: Overview, extensions and business applications, in: Reasoning Web.</p>
      <p>Causality, Explanations and Declarative Knowledge, 2022.
[11] A. Calì, G. Gottlob, A. Pieris, New expressive languages for ontological query answering,
in: AAAI, 2011.
[12] D. Magnanimi, L. Bellomarini, S. Ceri, D. Martinenghi, Reactive company control in
company knowledge graphs, in: ICDE, 2023. Best Industrial Paper.
[13] S. Ceri, J. Widom, Deriving production rules for incremental view maintenance, in: VLDB,
1991.
[14] B. Motik, Y. Nenov, R. E. F. Piro, I. Horrocks, Incremental update of datalog materialisation:
the backward/forward algorithm, in: AAAI, 2015.
[15] M. Staudt, M. Jarke, Incremental maintenance of externally materialized views, in: VLDB,
1996.
[16] A. Gupta, I. S. Mumick, V. S. Subrahmanian, Maintaining views incrementally, in: SIGMOD,
1993.
[17] P. Hu, B. Motik, I. Horrocks, Optimised maintenance of datalog materialisations, in: AAAI,
2018.</p>
    </sec>
  </body>
  <back>
    <ref-list>
      <ref id="ref1">
        <mixed-citation>
          [1]
          <string-name>
            <given-names>A.</given-names>
            <surname>Gulino</surname>
          </string-name>
          ,
          <string-name>
            <given-names>S.</given-names>
            <surname>Ceri</surname>
          </string-name>
          ,
          <string-name>
            <given-names>G.</given-names>
            <surname>Gottlob</surname>
          </string-name>
          ,
          <string-name>
            <given-names>E.</given-names>
            <surname>Sallinger</surname>
          </string-name>
          , L. Bellomarini,
          <article-title>Distributed company control in company shareholding graphs</article-title>
          ,
          <source>in: ICDE</source>
          ,
          <year>2021</year>
          .
        </mixed-citation>
      </ref>
    </ref-list>
  </back>
</article>