<!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>
      <issn pub-type="ppub">1613-0073</issn>
    </journal-meta>
    <article-meta>
      <title-group>
        <article-title>ProGGD - Data Profiling on Knowledge Graphs using Graph Generating Dependencies</article-title>
      </title-group>
      <contrib-group>
        <contrib contrib-type="author">
          <string-name>Larissa C. Shimomura</string-name>
          <email>l.capobianco.shimomura@tue.nl</email>
          <xref ref-type="aff" rid="aff0">0</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>George Fletcher</string-name>
          <email>g.h.l.fletcher@tue.nl</email>
          <xref ref-type="aff" rid="aff0">0</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Nikolay Yakovets</string-name>
          <email>n.yakovets@tue.nl</email>
          <xref ref-type="aff" rid="aff0">0</xref>
        </contrib>
        <contrib contrib-type="editor">
          <string-name>Data Profiling, Graph Data Dependencies, Knowledge Graphs, Graph Generating Dependencies</string-name>
        </contrib>
        <aff id="aff0">
          <label>0</label>
          <institution>Department of Mathematics and Computer Science, Eindhoven University of Technology - Eindhoven</institution>
          ,
          <country country="NL">Netherlands</country>
        </aff>
      </contrib-group>
      <pub-date>
        <year>2023</year>
      </pub-date>
      <fpage>6</fpage>
      <lpage>10</lpage>
      <abstract>
        <p>Data profiling is usually performed in the very first step of a data analysis pipeline. The main goal of data profiling is to present a comprehensive overview of the data contents and its properties to the user, including any potential relationships among data attributes. In knowledge graphs, the interplay among diferent graph entities, properties, and more complex patterns that emerge in the graph is crucial to understanding its content. In this demo paper, we introduce ProGGD, a system that employs Graph Generating Dependencies to showcase information about the graph's content.</p>
      </abstract>
    </article-meta>
  </front>
  <body>
    <sec id="sec-1">
      <title>-</title>
      <p>CEUR
ceur-ws.org</p>
    </sec>
    <sec id="sec-2">
      <title>1. Introduction</title>
      <p>
        Data profiling refers to the task of providing a comprehensive overview of the data contents
and its properties to the user. To achieve this, data dependencies are used to depict potential
correlations among the attributes and to express data quality rules. Such data dependencies
have been extensively studied in the context of relational data [
        <xref ref-type="bibr" rid="ref1">1</xref>
        ]. In the realm of knowledge
graphs, our interest extends beyond the entities’ properties and attributes to also encompass
information about the graph’s topology. This includes the presence of specific graph patterns
within the data and their possible correlations [
        <xref ref-type="bibr" rid="ref2">2</xref>
        ].
      </p>
      <p>Many methods for profiling knowledge graphs have been proposed. However, few systems
employ graph data dependencies to represent information about the data. The primary
advantage of using graph data dependencies for profiling knowledge graphs lies in their capacity to
convey detailed information about the knowledge graph to the user, and in turn, ofer insights
into the quality of the data.</p>
      <p>
        Graph Generating Dependencies (GGDs) [
        <xref ref-type="bibr" rid="ref3 ref4">3, 4</xref>
        ] is a class of dependencies for knowledge
graphs, which can, in an informal sense, express topological constraints based on two (possibly
diferent) graph patterns and the similarity of property values of nodes and edges within those
defined graph patterns. In this demo paper, we introduce ProGGD, a system designed for
knowledge graph data profiling that uses GGDs to represent information about the graph.
(N. Yakovets)
CEUR
Workshop
Proceedings
      </p>
      <p>Athlete</p>
      <p>a
debutTeam
d</p>
      <p>s
SportsTeam</p>
      <p>Athlete
a nationality
n</p>
      <p>c Country
s
SportsTeam
ciyty</p>
      <p>ProGGD
Validation of GGDs
Graph Pattern Queries</p>
      <p>Attribute Statistics</p>
      <p>GGDMiner
Attribute Similarity and</p>
      <p>Similarity Indexes
Frequent Subgraphs
Discovery of GGDs</p>
      <p>W
ESR ITBEN
T E
A R
IP FAC</p>
      <p>E</p>
      <p>Within ProGGD, given a knowledge graph, we identify GGDs from the data based on the
frequency of a graph pattern’s appearance and the prevalence of similar or correlated attributes
of nodes/edges in the graph. This discovery algorithm and the high expressivity of GGDs
enables us to display information both at the schema level (the GGD itself) and at an instance
level (data examples of each GGD). In ProGGD, our goal is to not only display interesting
information about the data to the user but also make it easy to understand the discovered GGDs
so that the user can also use it in their downstream tasks.</p>
    </sec>
    <sec id="sec-3">
      <title>2. Proposed Approach</title>
      <p>
        A GGD is defined as   []  →   [, ]  in which   [] and   [, ] are respectively source
and target graph patterns and   and   are respectively source and target constraints on the
attributes of the nodes/edges of the respective graph patterns according to its similarity. We
say that a GGD is validated in a graph  if, for every homomorphic match of the source side,
there exists a homomorphic match of the target side; we refer to [
        <xref ref-type="bibr" rid="ref4">4</xref>
        ] for formal details. If a
GGD is not validated, we can modify the validation algorithm to identify for which source
matches the target does not exist. Observe in Figure 1 an example of a GGD which states that
for every “Athlete” which has an“debutTeam” edge connected to a sports team and is aged at
least 18, there should exist an edge to a “Country” node to represent their nationality and the
“SportsTeam” should be located within a city of that Country, represented by the edge labelled
“city”.
      </p>
      <p>Given a graph  , we consider interesting GGDs for data profiling i.e., GGDs with graph
patterns and constraints according to the similarity of the attributes (diferential constraints)
that: (1) occur frequently on  , (2) validated according to a user-defined rate (called confidence
in our system) and, (3) can maximize the total number of matched nodes and edges in the
graph  (called coverage in our system). To discover such GGDs from  , we use our GGDMiner
discovery algorithm. According to these conditions, the main parameters of GGDMiner that
need to be set by the user through ProGGD are frequency, confidence, and the maximum size
of the result set of GGDs. Additional parameters such as the minimum threshold value for
diferential constraints and the maximum number of edges for graph patterns can optimize the
mining process. ProGGD ofer default values for these parameters to guide the users that are
not familiar with the background algorithm. Due to lack of space, more information about the
GGDMiner and its parameters are available in the source code repository1.</p>
      <p>
        In a summary, the GGDMiner has the following steps. First, we identify the attributes of
each node/edge label that are interesting to consider for the diferential constraint discovery
and construct auxiliary data structures based on the similarity of the attributes. Next, we mine
graph patterns and constraints that occur frequently in  , each combination of graph pattern
and set of constraints is considered a candidate for the source or target of a GGD. In this step,
we use algorithms and techniques for frequent subgraph mining and discovery of association
rules from the literature [
        <xref ref-type="bibr" rid="ref5">5</xref>
        ]. Finally, we verify which pairs of mined candidates can become
a GGD and which of these GGDs can cover the most information about the graph  for data
profiling. In each of the steps of the algorithm, we produce intermediate results which can be
used to understand the knowledge graph  .
      </p>
      <p>
        If a GGD is not validated (confidence is less than 1), it could indicate an error in the data.
ProGGD allows the user to visualize examples of validated and violated graph pattern matches
which might help the user to understand more about the content of the knowledge graph and
why such GGD was mined. ProGGD also includes functionalities to give overall information
about the graph such statistics about the attributes and graph pattern query results. We use
the Spark framework as the primary backend of ProGGD, to retrieve information about the
attributes and also query graph patterns by using the G-Core language [
        <xref ref-type="bibr" rid="ref6">6</xref>
        ]. Figure 1 shows an
overview of the ProGGD system and the functionalities available.
      </p>
    </sec>
    <sec id="sec-4">
      <title>3. Features and Demonstration</title>
      <p>Because of the rich expressiveness of GGDs, ProGGD includes many functionalities. For
the user’s ease of navigation, we divide such functionalities into 4 main panels:(1) Metadata
information and initialization, (2) Attribute information, (3) Topological Information and, (4)
GGDs.</p>
      <p>Metadata Information and Initialization - Given a knowledge graph and its schema
information, in ProGGD we can visualize the schema and verify the attributes of each one of
1https://github.com/laricsh/ggdminer</p>
      <p>Dataset
Cordis2
GDelt3
DBLP4
the types of nodes and edges. We also display initial information about the attributes in each
node/edge label to assist the user in setting the parameters for the GGD discovery algorithm.
Next, we run GGDMiner to discover GGDs; this process will populate the information displayed
in the other panels of the system.</p>
      <p>Attribute Information - The GGD discovery algorithm can discover correlated attributes
between the diferent nodes and edges of the knowledge graph based on its similarity. In this
panel, we showcase possibly correlated attributes according to the semantic similarity of its
property names, results of similarity join and clustering for string attributes, and the distribution
of the values for numerical attributes.</p>
      <p>
        Topological Information - In this panel, we display topological information according to the
frequent subgraph patterns mined from the knowledge graph. In this panel, user can verify
which graph patterns frequently appear and which nodes/edges are matched to each one of
these graph patterns. We use an Answer Graph [
        <xref ref-type="bibr" rid="ref7">7</xref>
        ] to represent the matches of the graph
patterns, which allows to visualize the matches as a subgraph eficiently, unlike systems that
use table-like representation of the matches.
      </p>
      <p>GGDs - In this panel, we visualize GGDs discovered from the knowledge graph along with the
total number of source matches, target matches and the rate of validated sources (see screenshot
in Figure 2). We also show the validated and violated matches of each GGD to help the user
understand the semantics of a GGD and also which subgraphs appear correlated to each other
in the knowledge graph.</p>
      <p>For the demonstration, we use open-source graph datasets and subsets of these datasets in
the context of citations networks to showcase the ProGGD functionalities. Table 1 shows details
about the datasets we plan to use. During demonstration, participants can select a dataset/subset,
load it into the system and explore ProGGD functionalities. We showcase ProGGD in two main
scenarios. In the first scenario, we focus on the topology of the knowledge graph by exhibiting
mined graph patterns and their correlations using a knowledge graph with few data attributes.
The second scenario, on the other hand, demonstrates the ProGGD capabilities in terms of
highlighting correlations and similarities between attributes. These two scenarios illustrate
how ProGGD is useful in understanding the content of the knowledge graph, even when they
difer significantly in terms of topology and the number of data attributes. More details and the
source code for ProGGD are available in https://github.com/laricsh/proggd.
2Graph built from Horizon 2020 project information accessed on https://data.europa.eu/data/datasets/
cordish2020projects?locale=en
3https://github.com/smartdatalake/datasets/tree/master/gdelt
4https://www.aminer.org/citation
In this paper, we introduced the ProGGD system, which employs GGDs for profiling knowledge
graphs. The high expressivity of GGDs enables the representation of complex information
about both the topology and properties that may be associated with each other in real-world
knowledge graphs. ProGGD also ofers the ability to inspect the matched nodes and edges
of each GGD, thereby assisting users in understanding the content of their knowledge graph
beyond mere metadata information. As part of our future work, we plan to improve ProGGD’s
scalability and include functionalities that utilize GGDs in other tasks, such as data cleaning
and data integration.</p>
    </sec>
    <sec id="sec-5">
      <title>Acknowledgments References</title>
      <p>This project has received funding from the European Union’s Horizon 2020 research and
innovation programme under grant agreements No. 825041 and No. 101058573.</p>
    </sec>
  </body>
  <back>
    <ref-list>
      <ref id="ref1">
        <mixed-citation>
          [1]
          <string-name>
            <given-names>Z.</given-names>
            <surname>Abedjan</surname>
          </string-name>
          ,
          <string-name>
            <given-names>L.</given-names>
            <surname>Golab</surname>
          </string-name>
          ,
          <string-name>
            <given-names>F.</given-names>
            <surname>Naumann</surname>
          </string-name>
          ,
          <article-title>Profiling relational data: A survey</article-title>
          ,
          <source>The VLDB Journal</source>
          <volume>24</volume>
          (
          <year>2015</year>
          )
          <fpage>557</fpage>
          -
          <lpage>581</lpage>
          . doi:
          <volume>10</volume>
          .1007/s00778- 015- 0389- y.
        </mixed-citation>
      </ref>
      <ref id="ref2">
        <mixed-citation>
          [2]
          <string-name>
            <given-names>M.</given-names>
            <surname>Ben Ellefi</surname>
          </string-name>
          ,
          <string-name>
            <given-names>Z.</given-names>
            <surname>Bellahsene</surname>
          </string-name>
          ,
          <string-name>
            <given-names>J. G.</given-names>
            <surname>Breslin</surname>
          </string-name>
          ,
          <string-name>
            <given-names>E.</given-names>
            <surname>Demidova</surname>
          </string-name>
          ,
          <string-name>
            <given-names>S.</given-names>
            <surname>Dietze</surname>
          </string-name>
          ,
          <string-name>
            <given-names>J.</given-names>
            <surname>Szymański</surname>
          </string-name>
          ,
          <string-name>
            <given-names>K.</given-names>
            <surname>Todorov</surname>
          </string-name>
          ,
          <article-title>RDF dataset profiling-a survey of features, methods, vocabularies and applications</article-title>
          ,
          <source>Semantic Web</source>
          <volume>9</volume>
          (
          <year>2018</year>
          )
          <fpage>677</fpage>
          -
          <lpage>705</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref3">
        <mixed-citation>
          [3]
          <string-name>
            <given-names>L. C.</given-names>
            <surname>Shimomura</surname>
          </string-name>
          , G. Fletcher, N. Yakovets,
          <article-title>GGDs: Graph generating dependencies</article-title>
          ,
          <source>in: Proceedings of the 29th ACM International Conference on Information &amp; Knowledge Management, CIKM '20</source>
          ,
          <string-name>
            <surname>Association</surname>
          </string-name>
          for Computing Machinery, New York, NY, USA,
          <year>2020</year>
          , pp.
          <fpage>2217</fpage>
          -
          <lpage>2220</lpage>
          . doi:
          <volume>10</volume>
          .1145/3340531.3412149.
        </mixed-citation>
      </ref>
      <ref id="ref4">
        <mixed-citation>
          [4]
          <string-name>
            <given-names>L. C.</given-names>
            <surname>Shimomura</surname>
          </string-name>
          ,
          <string-name>
            <given-names>N.</given-names>
            <surname>Yakovets</surname>
          </string-name>
          ,
          <string-name>
            <surname>G.</surname>
          </string-name>
          <article-title>Fletcher, Reasoning on property graphs with graph generating dependencies</article-title>
          ,
          <year>2022</year>
          . arXiv:
          <volume>2211</volume>
          .00387,
          <string-name>
            <given-names>Under</given-names>
            <surname>Review</surname>
          </string-name>
          .
        </mixed-citation>
      </ref>
      <ref id="ref5">
        <mixed-citation>
          [5]
          <string-name>
            <given-names>M.</given-names>
            <surname>Elseidy</surname>
          </string-name>
          ,
          <string-name>
            <given-names>E.</given-names>
            <surname>Abdelhamid</surname>
          </string-name>
          ,
          <string-name>
            <given-names>S.</given-names>
            <surname>Skiadopoulos</surname>
          </string-name>
          ,
          <string-name>
            <given-names>P.</given-names>
            <surname>Kalnis</surname>
          </string-name>
          , Grami:
          <article-title>Frequent subgraph and pattern mining in a single large graph</article-title>
          ,
          <source>Proc. VLDB Endow</source>
          .
          <volume>7</volume>
          (
          <year>2014</year>
          )
          <fpage>517</fpage>
          -
          <lpage>528</lpage>
          . doi:
          <volume>10</volume>
          .14778/ 2732286.2732289.
        </mixed-citation>
      </ref>
      <ref id="ref6">
        <mixed-citation>
          [6]
          <string-name>
            <given-names>R.</given-names>
            <surname>Angles</surname>
          </string-name>
          ,
          <string-name>
            <given-names>M.</given-names>
            <surname>Arenas</surname>
          </string-name>
          ,
          <string-name>
            <given-names>P.</given-names>
            <surname>Barcelo</surname>
          </string-name>
          ,
          <string-name>
            <given-names>P.</given-names>
            <surname>Boncz</surname>
          </string-name>
          , G. Fletcher,
          <string-name>
            <given-names>C.</given-names>
            <surname>Gutierrez</surname>
          </string-name>
          ,
          <string-name>
            <given-names>T.</given-names>
            <surname>Lindaaker</surname>
          </string-name>
          ,
          <string-name>
            <given-names>M.</given-names>
            <surname>Paradies</surname>
          </string-name>
          ,
          <string-name>
            <given-names>S.</given-names>
            <surname>Plantikow</surname>
          </string-name>
          ,
          <string-name>
            <given-names>J.</given-names>
            <surname>Sequeda</surname>
          </string-name>
          ,
          <string-name>
            <surname>O. van Rest</surname>
          </string-name>
          ,
          <string-name>
            <given-names>H.</given-names>
            <surname>Voigt</surname>
          </string-name>
          , G-core
          <article-title>: A core for future graph query languages</article-title>
          ,
          <source>in: Proceedings of the 2018 International Conference on Management of Data, SIGMOD '18</source>
          ,
          <string-name>
            <surname>Association</surname>
          </string-name>
          for Computing Machinery, New York, NY, USA,
          <year>2018</year>
          , p.
          <fpage>1421</fpage>
          -
          <lpage>1432</lpage>
          . doi:
          <volume>10</volume>
          .1145/3183713.3190654.
        </mixed-citation>
      </ref>
      <ref id="ref7">
        <mixed-citation>
          [7]
          <string-name>
            <given-names>Z.</given-names>
            <surname>Abul-Basher</surname>
          </string-name>
          ,
          <string-name>
            <given-names>N.</given-names>
            <surname>Yakovets</surname>
          </string-name>
          ,
          <string-name>
            <given-names>P.</given-names>
            <surname>Godfrey</surname>
          </string-name>
          ,
          <string-name>
            <given-names>S.</given-names>
            <surname>Clark</surname>
          </string-name>
          ,
          <string-name>
            <given-names>M. H.</given-names>
            <surname>Chignell</surname>
          </string-name>
          ,
          <article-title>Answer graph: Factorization matters in large graphs</article-title>
          ,
          <source>in: Proceedings of the 24th International Conference on Extending Database Technology, EDBT</source>
          <year>2021</year>
          ,
          <year>2021</year>
          , pp.
          <fpage>493</fpage>
          -
          <lpage>498</lpage>
          . doi:
          <volume>10</volume>
          .5441/002/edbt.
          <year>2021</year>
          .
          <volume>57</volume>
          .
        </mixed-citation>
      </ref>
    </ref-list>
  </back>
</article>