<!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>Extracting JSON Schemas with tagged unions</article-title>
      </title-group>
      <contrib-group>
        <contrib contrib-type="author">
          <string-name>Stefan Klessinger</string-name>
          <email>stefan.klessinger@uni-passau.de</email>
          <xref ref-type="aff" rid="aff1">1</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Meike Klettke</string-name>
          <email>meike.klettke@ur.de</email>
          <xref ref-type="aff" rid="aff2">2</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Uta Störl</string-name>
          <email>uta.stoerl@fernuni-hagen.de</email>
          <xref ref-type="aff" rid="aff0">0</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Stefanie Scherzinger</string-name>
          <xref ref-type="aff" rid="aff1">1</xref>
        </contrib>
        <aff id="aff0">
          <label>0</label>
          <institution>University of Hagen</institution>
          ,
          <addr-line>Hagen</addr-line>
          ,
          <country country="DE">Germany</country>
        </aff>
        <aff id="aff1">
          <label>1</label>
          <institution>University of Passau</institution>
          ,
          <addr-line>Passau</addr-line>
          ,
          <country country="DE">Germany</country>
        </aff>
        <aff id="aff2">
          <label>2</label>
          <institution>University of Regensburg</institution>
          ,
          <addr-line>Regensburg</addr-line>
          ,
          <country country="DE">Germany</country>
        </aff>
      </contrib-group>
      <fpage>27</fpage>
      <lpage>40</lpage>
      <abstract>
        <p>With data lakes and schema-free NoSQL document stores, extracting a descriptive schema from JSON data collections is an acute challenge. In this paper, we target the discovery of tagged unions, a JSON Schema design pattern where the value of one property of an object (the tag) conditionally implies subschemas for sibling properties. We formalize these implications as conditional functional dependencies and capture them using the JSON Schema operators if-then-else. We further motivate our heuristics to avoid overfitting. Experiments with our prototype implementation are promising, and show that this form of tagged unions can successfully be detected in real-world GeoJSON and TopoJSON datasets. In discussing future work, we outline how our approach can be extended further.</p>
      </abstract>
    </article-meta>
  </front>
  <body>
    <sec id="sec-1">
      <title>1. Introduction</title>
      <p>
        JSON is a popular data exchange format. Extracting a
schema from collections of JSON documents is a
realworld challenge which is actively being researched [
        <xref ref-type="bibr" rid="ref18 ref24">1, 2,
3, 4, 5, 6, 7, 8</xref>
        ].
      </p>
      <p>Ideally, the extracted schema describes the data tightly,
yet without overfitting. In this article, we target the
detection of a specific schema design pattern in the JSON
Schema language, the pattern of tagged unions, also known
as discriminated unions, labeled unions, or variant types.</p>
      <p>This is a recommended design pattern [9], and has been
found to be quite common in real-world schemas [10].</p>
      <p>Example 1. Figure 1 shows GeoJSON data. The array
starting in line 2 holds four objects, of type Point and
LineString. Point coordinates are encoded as an array
of numbers, while lines are encoded as an array of points,
and hence, an array of number arrays.</p>
      <p>The GeoJSON specification (IETF RFC 7946, clickable
link embedded in the PDF) describes six types of
geometries, including polygons and multi-polygons.
Consistently, the property type serves as a tag to
distinguish the subschema of sibling property coordinates,
thereby instantiating a tagged union.</p>
      <p>
        GeoJSON comes without an oficial JSON Schema
specification [ 11]. In Figure 2, we therefore show a
handcrafted excerpt using the if-then-else construct to
enforce the tagged union, with the following
semantics: If the object in question has a property labeled
1 { " type ": " GeometryCollection ",
2 " geometries ": [
3 { " type ": " Point ",
4 " coordinates ": [30 ,10] },
5 { " type ": " Point ",
6 " coordinates ": [
        <xref ref-type="bibr" rid="ref17">40 ,15</xref>
        ] },
7 { " type ": " LineString ",
8 " coordinates ": [[
        <xref ref-type="bibr" rid="ref46">55 ,5</xref>
        ] , [10 ,30] , [10 ,10]] },
9 { " type ": " LineString ",
10 " coordinates ": [[30 ,10] , [10 ,30] , [40 ,40]] }
11 ] }
type with the value Point, then the value of property
coordinates must be an array of numbers. Else, if the
property type has the value LineString, the value of
coordinates must be an array of points, and hence, an
array of number arrays.
      </p>
      <p>Example 2. Various schemas listed on SchemaStore.org,
a community-curated collection of JSON Schema
declarations, encode tagged unions using if-then-else.</p>
      <p>Among them are the Minecraft schemas which use tagged
unions to encode so-called data packs for configuring
Minecraft worlds. Other examples are Github Issue Forms,
or the cloudify schema (clickable links in the PDF).</p>
      <p>In schema extraction, the detection of tagged unions
has so far received limited attention: Several approaches
are able to detect union types, i.e., properties whose type
is a union of types, but they do not detect the
dependency w.r.t. a specific property value (the “tag” in the
tagged union). Figure 3a shows an example: This schema
for GeoJSON data does not restrict the values for
property type (it allows all strings) and allows alternative
© 2022 Copyright for this paper by its authors. Use permitted under Creative Commons License subschemas for property coordinates. As it is overly
ACttEribUutRion W4.0oInrtekrnsahtioonpal (PCCroBYce4.0e).dings (CEUR-WS.org) general, the schema allows to encode lines as mere
ar" type ": { " const ": " Point " } },</p>
      <p>" items ": { " type ": " number " } } } },
" properties ": {
" required ": [ " type " ] },</p>
      <p>" type ": { " const ": " LineString " } },
3
7
8
9
11
12
13
14
15
16
17
18
19
20
21
5 " then ": {
6 " properties ": {
" coordinates ": {</p>
      <p>" type ": " array ",
10 " else ": {
"if ": {
" then ": {
" properties ": {
" coordinates ": {
" type ": " array ",
" items ": {
" type ": " array ",</p>
      <p>by state-of-the-art third-party tools.
• Our experiments on real-world GeoJSON datasets
(and its sibling format TopoJSON) show that
meaningful tagged unions can indeed be identified. We
illustrate the impact of a configurable threshold
on the number of tagged unions detected, and
consequently, the size of the extracted schema.</p>
      <p>We further outline promising directions of future work.</p>
      <sec id="sec-1-1">
        <title>Artifact availability and reproducibility.</title>
        <sec id="sec-1-1-1">
          <title>We have made our research artifacts (code, data, extracted schemas), as well as a fully automated reproduction package, longterm available online [12].</title>
          <p>Structure of this paper. In Section 2, we introduce
Section 4, we present our approach, specifically the
architecture and heuristics employed, and an outlook on future
extensions. In Section 5, our experiments are presented
rays of numbers (rather than arrays of number-arrays), and discussed. In Section 6, we draw our conclusions and
" items ": { " type ": " number " } } } } } }
in violation of the GeoJSON specification.</p>
          <p>Existing approaches to JSON Schema extraction fail
to detect tagged unions. Notably, in describing their
approach to schema extraction based on typing JSON
values, Baazizi et al. [2] outline how their approach can
be extended to include tagged unions. However, they do
not discuss strategies against overfitting to the input data
during the discovery of tagged unions.</p>
        </sec>
        <sec id="sec-1-1-2">
          <title>Our proposal follows a diferent approach, and relies</title>
          <p>on a relational encoding of JSON objects from which we
then derive conditional dependencies. A central part of
our contribution are our heuristics, which filter out
dependencies that have insuficient support in the input
data, so that they are not reflected in the derived schema.
Specifically, ours is the first proposal towards the
discovery of tagged unions that — to our knowledge — includes 
an experimental evaluation over real-world data.
Contributions. This paper makes the following
contributions:
• We target the detection of tagged unions in JSON
schema extraction, specifically, tagged unions
that are based on dependencies between a
property value and the implied subschema of its
sibling properties.
• Our approach relies on the discovery of unary
constant conditional functional dependencies in
a relational encoding of the JSON objects.
Traditionally, conditional functional dependencies are
employed in the context of data cleaning, and we
apply them to a new domain.
• Our approach is composable with existing
algorithms for JSON schema extraction, as we impose
the tagged unions on top of the schemas derived
discuss opportunities for future work.</p>
        </sec>
      </sec>
    </sec>
    <sec id="sec-2">
      <title>2. Preliminaries</title>
      <p>2.1. JSON Data Model and JSON Schema</p>
      <sec id="sec-2-1">
        <title>JSON data model.</title>
        <p>The grammar below (adopted from [13]) captures the
syntax of JSON values, namely basic values, objects, or arrays.</p>
        <p>Basic values</p>
        <p>include the null value, Booleans,
numbers  , and strings  . Objects</p>
        <p>represent sets of
members, each member being a name-value pair, arrays 
represent sequences of values.

 ::=  |
 |</p>
        <p>::= null | true | false |  | 
::= { 1 :  1, . . . ,   :   }
 ::= [ 1, . . . ,   ]
 ≥ 0</p>
        <p>∈ Num,  ∈ Str
 ≥ 0,  ̸=  ⇒   ̸=  
JSON Schema. JSON Schema is a language for
defining the structure of JSON documents. The syntax and
semantics of JSON Schema have been formalized in [14],
and we informally present some of the main keywords:</p>
        <p>Assertions include required, enum, const, pattern
and type, and indicate a test that is performed on the
corresponding instance.</p>
        <p>Applicators include the Boolean operators not, anyOf,
allOf, oneOf, as well as, if-then-else. They
further include the object operators patternProperties,
additionalProperties, and properties, and the
array operator items, and the reference operator $ref.</p>
        <p>They apply a diferent operator to the same instance or
to a component of the current instance.</p>
        <p>Annotations (title, description, and $comment)
do not afect validation but indicate an annotation
associated to the instance.
1 " anyOf ": [
2 { " type ": " object ",
3 " properties ": {
4 "type": { "type": "string" },
5 " coordinates ": {
6 " type ": " array ",
7 " items ": { " type ": " number " } } }
8 },
9 { " type ": " object ",
10 " properties ": {
11 "type": { "type": "string" },
12 " coordinates ": {
13 " type ": " array ",
14 " items ": { " type ": " array ",
15 " items ": { " type ": " number " }
16 } } } } ]
1 " anyOf ": [
2 { " type ": " object ",
3 " properties ": {
4 "type": { "const": "Point" },
5 " coordinates ": {
6 " type ": " array ",
7 " items ": { " type ": " number " } } }
8 },
9 { " type ": " object ",
10 " properties ": {
11 "type": { "const": "LineString" },
12 " coordinates ": {
13 " type ": " array ",
14 " items ": { " type ": " array ",
15 " items ": { " type ": " number " }
16 } } } } ]
(a) Union type.</p>
        <p>
          (b) Tagged union.
Union types A property with several possible types “Point” with coordinates encoded as an array of numbers
(or subschemas) can be described as a union type [
          <xref ref-type="bibr" rid="ref17">15</xref>
          ], or a “LineString” with an array of points.
i.e., the union of all types the property assumes. In JSON Note that while Figures 3a and 3b difer only marginally
Schema, this can be encoded by a disjunction, using the in their syntax, the diference in semantics is striking:
union operators anyOf or oneOf (where the former is The tagged union captures the dependency between the
inclusive, and the latter exclusive). Such an encoding is value of property type and the subschema of property
exemplified in Figure 3a for GeoJSON. Union types are coordinates. While union type encodings can be
derecognized by most of the existing tools for JSON Schema rived by several state-of-the-art schema extraction tools,
extraction (as we will discuss in greater detail in our dis- schemas with tagged unions are – so far – manually
cussion of related work). While the schema distinguishes crafted, since existing approaches to schema extraction
two variants for encoding coordinates (an array of are not capable of discovering value-based dependencies.
numbers, or an array thereof), it does not capture any Our approach can produce either the if-then-else
dependencies between the value of property type and encoding or the encoding exemplified in Figure 3b. We
the subschema for the sibling property coordinates. chose to implement the former, because it is more lenient
Also, the domain of property type is not restricted to w.r.t. unexpected tag values (in this case no restrictions
specific string values. are specified). Note that this is not a limitation of our
approach, and a merely technical limitation.
        </p>
        <p>Tagged unions The if-then-else operator allows
for declaring tagged unions, and was introduced (rather 2.2. Dependencies
recently) with JSON Schema Draft 7.</p>
        <p>In Example 1, we informally introduced the semantics. For the relational model, the concept of functional
depenAs for terminology, we distinguish one property as the dencies is well explored, and various generalizations are
tag (in our example, the property labeled type), and known, such as conditional functional dependencies [16]
identify one or more properties with implied subschemas which only apply to a subset of the tuples. In the
follow(in our example, for coordinates). ing, we extend these notions to JSON data, assuming a</p>
        <p>The tag-property may go by any name. While the relational encoding of all objects that are reachable by
schemas for GitHub Issue Forms and cloudify from Ex- the same path from the document root. This idea of a
ample 2 incidentally also rely on a tag labeled “type”, in relational encoding of semi-structured data for the
definithe example of Minecraft (see data snippets in Figure 5), tion or detection of dependencies is a common approach,
the tag-property is labeled “condition”. e.g., for XML [17], JSON [18], or RDF data [19].</p>
        <p>
          An alternative encoding for tagged unions is to use a
union operator, as shown in Figure 3b. Two diferent com- Relational encoding Given a JSON value, we consider
binations of values for property type and subschemas all labeled paths from the root to a JSON object. Paths
for property coordinates are given in accordance with may be encoded in JSONPath [
          <xref ref-type="bibr" rid="ref22">20</xref>
          ], a straightforward path
the GeoJSON definition. Again, an object may either be a language for JSON.
and further
{ "type": "array", "items":{
"type": "array",
"items": { "type": "number" }}}
        </p>
        <p>We next introduce the schema for our relational en- Dependencies We next introduce dependencies over
coding. We reserve attribute . id for an (internal) object this relational encoding. Traditional functional
depenidentifier. The object identifier must be unique, but we dencies (FDs) capture constraints that hold on all tuples
do not impose any constraints on its semantics. In the of a relation. Moreover, conditional functional
dependenfollowing, we will simply use the line of code in the file cies (CFDs) [16] are functional dependencies that hold
containing the JSON Schema declaration (after pretty on only a subset of the tuples. While in their full
genprinting), where the scope of the object is first entered. erality, CFDs are a generalization of classical functional</p>
        <p>We identify the labels of all properties reachable by a dependencies, we will focus on a very restricted subclass
given path  : that is related to association rules [21], and that can be
defined quite compactly.
  = {  | object { 1 :  1, . . . ,   :   }
is reachable by path  }</p>
        <p>Definition 4. If  is a set of attributes, then a unary
constant conditional functional dependency over  (ucCFD)
is an expression of the form</p>
        <p>For each property label   in   where   occurs as
a basic value, we define a relational attribute   .value [ =  ] → [ =  ]
that captures the basic value   . These properties are
considered to be candidates for tags. where ,  are attributes in  and ,  are constants</p>
        <p>Further, for each property label   in   , we define from the domains of  and  respectively. A relation
an attribute   .type, capturing the subschema directly  over  satisfies [ =  ] → [ =  ] if for each
derived from its value   . pair of tuples ,  ∈  ,   ( ) =   ( ) =  implies</p>
        <p>For each object reachable by path  , we then insert   ( ) =   ( ) =  .
one tuple into this relation, choosing some unique object Example 5. The dependency below holds in Table 1 and
identifier for each object. The attribute values are pop- reads as follows:
ulated with the semantics described above; null values
mark missing entries.
[type.value = "Point"] → [coordinates.type = t1]
Example 3. Table 1 shows the encoding for the JSON The left-hand-side, in brackets, declares a condition
objects from Figure 1 in the array starting from line 3, that must be satisfied for the dependency to hold: We
conreachable by the JSONPath /geometries[*]. By t1 sider all attributes where the value of attribute type.value
and t2, we abbreviate the subschemas directly derived is the string “Point”. For all tuples where this condition is
from the JSON values, requiring an array of numbers (t1) satisfied, the value of attribute coordinates.type must
and an array of arrays of numbers (t2), namely be the subschema abbreviated as t1.</p>
        <p>In our domain of application, namely JSON values,
(t1) these dependencies express powerful constraints between
property values and subschemas: In the example
dependency above, it is implied that if the value of property
type is the string constant “Point”, then the value of
the sibling property coordinates must conform to the
(t2) subschema t1.</p>
        <p>In the remainder of this article, we exclusively focus on
the discovery of such value-type constraints, where the
attribute on the left-hand-side of a ucCFD is of the form
“ .value” (the value of property  , which we consider
to be a candidate for a tag in a tagged union), and the
attribute on the right-hand-side is of the form “ .type”
(the subschema of the sibling property  ).</p>
        <p>Traditionally, tagged unions are declared by
switching on the value of a single tag property. This is also
the recommended practice in JSON Schema [9], and in
agreement with what we observe in real-world data [10].</p>
        <p>We are therefore confident that our restriction to unary
dependencies is justified.</p>
      </sec>
    </sec>
    <sec id="sec-3">
      <title>3. Related Work</title>
      <p>
        (quantitative comparison). Several of the examined
approaches also support the extraction of union types: [
        <xref ref-type="bibr" rid="ref18 ref24">1</xref>
        ]
Our article builds upon the rich body of related work and [31] use the JSON Schema keyword oneOf, while [2]
in the area of schema extraction and the theory of data use the union type constructor of their own proprietary
dependencies. schema language. The authors of [
        <xref ref-type="bibr" rid="ref39">32</xref>
        ] encode the
extracted schema in the XML Schema language, and encode
Schema and constraint definition. Schema lan- union types using entity versioning, while [
        <xref ref-type="bibr" rid="ref40">33</xref>
        ] pursue
guages for semi-structured data are well-researched. an alternative approach of reducing diferent types to
      </p>
      <p>
        XML was developed as a semi-structured data format their most generic type.
with implicit structural information and an optional ex- But neither Klettke et al. [
        <xref ref-type="bibr" rid="ref18 ref24">1</xref>
        ] nor Frozza et al. [31]
plicit schema. The simplest schema language for XML is support tagged unions within their extraction of union
DTD (Document Type Definition). The lack of means to types. The approach by Baazizi et al. [2] is based on type
express data types and exact cardinalities in DTDs moti- inference. They achieve scalability by inferring types in
vated the development of further schema languages, such a MapReduce-based approach. The authors do discuss
as XML Schema [22], Schematron [23], and RelaxNG [
        <xref ref-type="bibr" rid="ref26">24</xref>
        ]. the challenge of extracting tagged unions, and describe
All three support the definition of constraints. In XML an extension to their algorithm to address this challenge.
Schema, alternatives can be defined by specifying con- However, there is no implementation or evaluation of
ditions on path expressions (XPath). In version 1.1 of this feature, or of any heuristics to prevent overfitting in
XML Schema, the concept of assertions allows to encode tagged unions.
constructs such as tagged unions. Schematron can define In a further, recent contribution, Spoth et al. [3] focus
rules with context information (XPath) and messages on resolving ambiguities during schema extraction, such
(that are sent in the success or error case). RelaxNG en- as sets encoded as objects rather than arrays. As their
ables the definition of inference rules. This historical approach does not consider property values, it cannot
excursion shows the necessity of exact and expressive detect tagged unions.
schema languages. The same holds true for the descrip- Durner et al. [
        <xref ref-type="bibr" rid="ref41">34</xref>
        ] recently presented an approach for
tion of JSON data. The preliminaries on JSON Schema fast analytics on semi-structured data. Using various
were already covered in paragraph 2.1. algorithms, the JSON data is divided into tiles, and
local schemas are extracted. However, tagged unions are
Schema extraction. In relational databases which fol- neither considered nor recognized.
low a schema-first approach, all available databases have A completely diferent approach for schema inference
an explicit schema stored in the databases catalog. With has been suggested in [35]. In this work, a supervised
semi-structured data, on the other hand, there are many learning method (based on the well-known C4.5
classifidatasets available that have been published without such cation algorithm) is used for detecting hidden rules in the
explicit schema information. Schema extraction (also diferent variants of datasets. These rules can be either
known as reverse engineering) is therefore an important structure-based or value-based. An interesting
observasubtask in data profiling for semi-structured data. tion of this work was that based on an empirical study
(interviews), value-based rules are considered more
imXML schema extraction. For schema extraction from portant by human consumers than structure-based rules
XML documents, diferent approaches have been devel- to distinguish variants. The result of the approach is a
oped, (e.g. [
        <xref ref-type="bibr" rid="ref29 ref32 ref35">25, 26, 27, 28, 29, 30</xref>
        ]). In all algorithms, a decision tree that distinguishes the diferent schema
varisimple schema consisting of element and attribute names, ants with value-based or structure-based conditions on
nesting, optional and required information is derived. We each edge. Even if the approach in the paper is very
diferare not aware of any approaches to extracting complex ent from ours, we recognize the motivation that
considschema constraints, such as tagged unions. ering value-based conditions in heterogeneous databases
is important.
      </p>
      <sec id="sec-3-1">
        <title>JSON schema extraction. Early work on schema ex</title>
        <p>
          traction from JSON data [
          <xref ref-type="bibr" rid="ref18 ref24">1</xref>
          ] adds — besides the schema
itself — also the extraction of statistics and a detection of
outliers. In [6], the extraction of schema versions over
time, as well as evolution operations mapping between
consecutive schema versions, is presented.
        </p>
        <p>Recent surveys of diferent schema extraction
approaches were provided by [4] (qualitative comparison) and [5]
Dependencies. For an overview of data dependencies,
we refer to a comprehensive survey [36], and focus on
functional, inclusion, and conditional functional
dependencies in the following.</p>
        <p>Functional dependencies and inclusion
dependencies. Functional dependencies [37, 38, 39, 18] and
inclusion dependencies on semi-structured data [40, 18]
define semantic constraints on data to guarantee certain approach. In previous work on inferring inclusion
dedata characteristics, to normalize data [41], and to ensure pendencies from JSON data [6], we suggested an eficient
data quality. These constraints can also be applied in method that uses lattice characteristics to optimize the
data cleaning. In [42], an overview over diferent meth- algorithm. To consider outliers, a threshold is introduced.
ods and the semantic constraints, rules, or patterns to With it, it is possible to derive related inclusion
dependetect errors in the data cleaning process is given. Schel- dencies which are violated by a small number of outliers.
ter et al. [43] use declarative rules in unit tests to check A further relaxation of functional dependency
discovthe data quality (defined with several metrics). Some ex- ery has been suggested in [49] for data lakes. Here,
outamples are: completeness of datasets, range conditions, liers are not ignored, but properties that have diferent
certain cardinalities and constraints on statistics. Both yet similar labels are combined. This method can be used
approaches do not infer the semantic constraints from for data exploration and profiling of datasets with lower
data but show how declarative rules can be leveraged data quality.
during data preprocessing.</p>
        <p>The discovery of valid uniqueness constraints, func- Conditional functional dependencies. Conditional
tional dependencies and inclusion dependencies is a well- functional dependencies [16] were first introduced for
studied field in relational databases [ 44, 45, 46, 47, 48] relational data, in the context of data cleaning. We apply
and even more relevant in JSON data (or, more generally, conditional functional dependencies in a new context,
NoSQL data) because often these semantic constraints the relational encoding of JSON objects.
are not predefined in the NoSQL databases. They are im- In [50, 51], three algorithms for CFD mining are
proplicitly available in the data but for data cleaning tasks, posed and evaluated: CTANE and FastCFD build upon
this information is required in form of rules and con- existing algorithms for FD discovery, TANE and FastFD,
straints. Hence, development of algorithms to derive respectively and are intended for general CFD
discovexplicit semantic constraints from NoSQL data is of par- ery. The third algorithm is custom-designed for constant
ticular importance. CFDs, as also targeted by us.</p>
        <p>
          Methods for deriving semantic constraints from data In [
          <xref ref-type="bibr" rid="ref43">52</xref>
          ], additional rules for pruning the search space
can build upon the algorithms developed for relational and consequently speeding up the mining process are
databases. Additionally, the algorithms have to scale proposed for constant CFDs. Further approaches, based
with large volumes of data, and be robust despite the on FD discovery and pattern mining, are explored in [21].
heterogeneity of datasets (variety) and low data quality
(outliers in datasets).
        </p>
        <p>Arenas and Libkin define functional and inclusion de- 4. Approach
pendencies for XML [17], as a basis for schema
normalization. More recently, Mior [18] targets the mining of Our end-to-end approach is sketched in Figure 4. In our
functional and inclusion dependencies from JSON data. upcoming walk-through of the architecture, we first focus
Both formalisms do not allow to capture the conditional on the basic approach, as well as our heuristics against
functional dependencies required in our context. overfitting and schema bloat. We then outline future</p>
        <p>However, Mior compares the performance of depen- work extensions to robustly generalize our approach to
dency discovery in a relational encoding of the JSON a larger family of tagged unions.
data (termed “static unrolling”) with a dynamic unrolling
technique, showing that the latter has superior runtime 4.1. Architecture
performance. Mior focuses on the discovery of functional
dependencies and inclusion dependencies. While his ap- Composability. We design our approach to be
composproach does not consider the special case of conditional able with existing schema extraction algorithms: Given a
functional dependencies, which is relevant in our context, collection of JSON values, we extract a JSON Schema
deit is capable of deriving approximate dependencies, thus scription  , using any third-party tool. Along the process
being more robust w.r.t. vagueness in the input data. sketched along the bottom, we further derive the
declara</p>
        <p>Kruse et al. developed in [40] the scalable discovery of tion of tagged unions, denoted  , a sequence of (possibly
inclusion dependencies from data. Scalability of the ap- nested) JSON Schema if-then-else statements.
proach is achieved by two reasons: the approach is only By the conjunction of the subschemas as
concentrating on discovery of unary inclusion depen- {"allOf": [S, ]}, the composite schema requires the
JSON values to satisfy both subschemas, imposing tagged
unions on schema  . This approach allows us to focus
on the particular challenge of identifying tagged unions,
while conveniently leveraging state-of-the-art schema
extraction tools for describing the other aspects of the
dencies (consisting of one attribute on the left-hand and
on the right-hand side) and is developing a distributed
approach. Combining both, a very eficient algorithm
can be developed for analyzing large datasets. The
heterogeneity of datasets has not been considered in this
JSON
Schema</p>
        <p>1</p>
        <p>
          JSON
Schema
Extraction, e.g. [
          <xref ref-type="bibr" rid="ref18 ref24">1</xref>
          ]
        </p>
        <p>Schema</p>
      </sec>
      <sec id="sec-3-2">
        <title>Parse</title>
      </sec>
      <sec id="sec-3-3">
        <title>Tree</title>
        <p>2</p>
        <p>A</p>
        <p>B</p>
        <p>C</p>
        <p>3</p>
        <p>JSON
Schema
{allOf:[ , ]}
[X=v1]→[Y=t1]
[X=v2]→[Y=t2]
[X=v3]→[Z=t3]
schema. We leave it to future work to recursively merge implied subschema. Recall that with the dot-notation, we
the composite schema, thereby improving the readability distinguish the value of JSON property  (i.e., . value)
as well as the locality of the interacting constraints. from the subschema of sibling property  (i.e.,  .type)
in our relational encoding of JSON objects.</p>
        <p>Relational encoding. In a first step towards the dis- Example 7. From the relational encoding in Table 1, we
covery of tagged unions, we parse all JSON values into a derive the following dependencies, again using the
abbresingle parse tree (adding a virtual root node), and deter- viations t1 and t2 for the subschemas introduced earlier:
mine the set of all labeled paths from the root to a JSON [type.value = "Point"] → [coordinates.type = t1]
object. For each such path, we then derive the relational [type.value = "LineString"] → [coordinates.type = t2]
encoding of all properties in the reachable objects. We
have already introduced this data structure in Section 2,
and resume the discussion of our running example.</p>
        <p>Recall that in the context of our application, they are
interpreted as follows. Given a JSON object reachable
by the path /geometries[*], if the value of property
Example 6. Consider the GeoJSON value in Figure 1. type is “Point”, the value of the sibling property
coordiTable 1 shows the relational encoding of the four objects nates must conform to the subschema t1 (an array of
reachable by the path /geometries[*]. The role of numbers). If the value of property type is “LineString”,
the unique object identifier is to preserve cardinalities then the value of sibling property coordinates must
in repeating attribute values, allowing us to later filter conform to the subschema t2 (an array of points).
dependencies based on their support in the input.</p>
        <p>In the discovery of these dependencies, we leverage</p>
        <p>
          The running example has been designed to be simple, state-of-the-art algorithms [
          <xref ref-type="bibr" rid="ref44 ref45 ref46">53, 47, 54, 55</xref>
          ] (originally
deand it ignores challenges such as properties with varying veloped for the discovery of traditional functional
detypes, dealing with several properties whose values have pendencies), such as a compressed-records encoding of
basic types, or null-values in the relational encoding. Our the relation, computing position list indexes (PLIs) and
approach can be extended to robustly handle these cases producing a sequence of candidate dependencies. PLIs
as well, and we refer to Section 4.3 for a discussion on are calculated for each column of the relational encoding
the most interesting future generalizations. and allow to efectively group all rows (identified by their
row number) with the same value in the same subset.
        </p>
        <p>Dependency discovery. Based on the relational en- In the following, we outline the general idea. Inferring
coding, we discover conditional functional dependencies. conditional functional dependencies from PLIs can be
We restrict ourselves to unary constant conditional de- achieved by finding inclusions between them: given PLIs
pendencies in our relational encoding, of the form  A.value = {{1, 2, 3}, {4, 5, 6}} of attribute . value and
 B.type = {{1, 2, 3, 4}, {5}, {6}} of attribute . type, we
[. value =  ] → [. type =  ] receive the inclusion {1, 2, 3} ⊂ {1, 2, 3, 4}, allowing us
to infer that the values of JSON property A corresponding
where the left-hand-side denotes the value of the can- to rows 1, 2 and 3 determine the subschemas of the sibling
didate tag, and the right-hand-side a property with an property B.
implied subschema. Above,  and  are distinct prop- More sophisticated algorithms developed for the
diserty labels,  is a basic-value constant, and  denotes the covery of conditional functional dependencies (CFDs),
such as CFDMiner, CTANE and FastCFD [50], could be Minimum Threshold  min. Especially in large
datadeployed just as well. As our current restrictions, most sets, it is to be expected that dependencies are inferred
notably the one to unary dependencies, obfuscate many that have no real semantics, despite us ignoring attributes
of the challenges in FD and CFD discovery, we opted for with unique values. Our implementation has a
configour simpler approach. urable minimum threshold: Dependencies with
insuficient support in the input are then ignored during the
Pruning candidate dependencies. To avoid over- generation of if-then-else statements.
iftting in the derived schemas, we heuristically prune By allowing to configure this threshold, either as an
candidate dependencies, as described in the upcoming absolute or relative value, the number of discovered
deSection 4.2. pendencies can be influenced. Our experiments evaluate
this efect.</p>
        <p>Finalization. In a final step, the conditional functional
dependencies are transformed into nested if-then-else 4.3. Future Generalizations of the
statements in JSON Schema  . This step is merely tech- Approach
nical, as is the construction of the composite schema.
4.2. Heuristics
In our approach, an inherent challenge is dealing with
high numbers of discovered dependencies, which may
lead to overfitting the derived schema w.r.t. the input data.</p>
        <p>We next distinguish default heuristics and heuristics that
are configurable by an expert user.</p>
      </sec>
      <sec id="sec-3-4">
        <title>4.2.1. Default Heuristics</title>
        <p>The following heuristics are always applied, as they
prevent schema bloat due to overfitting.</p>
        <p>In GeoJSON data, which served as our motivation for
the discovery of tagged unions, the geometry objects
are highly regular. When inspecting further instances
of tagged unions in real-world data, we encounter
variations that require us to generalize our approach. For
illustration, we again resort to an example.
1 [ { " condition ": " minecraft : time_check ",
2 " period ": 24000 ,
3 " value ": { "min ": 0.0 } } ]</p>
        <p>(a) The value of property min (line 3) is numeric.
1 [ { " condition ": " minecraft : weather_check ",
2 " raining ": false ,
Single-valued attributes. In discovering dependen- 34 { "" ctohnudnidteiroinng":":" fmailnseecra}f,t : time_check ",
cies, we ignore all attributes from the relational encoding 56 "" vpaelruieod":":{24000 ,
with a single-valued domain. In Table 1, this concerns 7 "min ": {
the attribute type.type. 89 " t"arngaemte "":: {"% StartSunburn ",
10 " type ": " minecraft : fixed " },
Unique attributes. Unique property values are rec- 1112 "" tsycpoere":":""miDnaeyctirmaeft":, score " } } } ]
ognized as conditional functional dependencies, and
ultimately, cause overfitting and schema bloat. In
dependency discovery, we therefore ignore all attributes where
the domain consists of unique values (such as the object
identifier  .id, which does not appear in the input data,
and need not be considered in dependency discovery).</p>
        <p>Union rule. We apply the union rule to the discovered Example 8. We consider JSON data used in the Minecraft
dependencies, so that one tag may imply the subschemas game, as shown in Figure 5. The property condition
for several sibling properties. This improves schema functions as a tag, and distinguishes notions such as “time
succinctness. checks” and “weather checks”, among others. Depending
on the tag value, diferent sibling properties exist: Given
4.2.2. Configurable Heuristics that the tag value is a “weather check”, sibling properties
labeled raining and thundering exist. Given that the
The following heuristics is reasonable in many cases. As tag value is a “time check”, sibling properties labeled
it is not universally applicable, we make it configurable. period and value exist.</p>
        <p>To extend our approach to such more general forms
of tagged unions, we need to be able to detect
conditional dependencies between the value of a candidate tag,
and the existence of a sibling property (which we term
as a fully automated reproduction package, are
availvalue-label constraints, to distinguish from the value- able online [12]. Additionally, in the PDF version of this
type constraints that we already handle). Here, a specific
article, clickable links in Table 2 allow our readers to
dichallenge is to handle optional sibling properties, which
rectly inspect the input datasets, as well as the extracted
are not always present.</p>
        <p>Example 9. Resuming the previous example of a Minecraft
“time check”, the subschema for property value is an
object with a property min. The subschema of property
min, however, may vary. In the top example, it is a
numeric value. In the bottom example, it is a nested object.</p>
        <p>Our approach outlined so far cannot detect this condi- our results.
tional functional dependency, because the subschemas
of the sibling property difer.</p>
        <p>To detect value-type dependencies where the types on
ognized subschema. In our current prototype implemen- ficiently large document size and (2) that at least two
tation, we introduce attributes min.type1, . . . , min.type
(e.g., for a fixed limit</p>
        <p>= 6), where we describe the
subschema with a varying degree of detail. For instance,
from a shallow min.type1= {"type":</p>
        <p>"object} to
a very fine-grained description that fully captures all
nested objects. In pruning candidate dependencies, we
only keep the most detailed subschema for which a CFD
still holds. This allows us to detect a common subschema
in many practical cases.</p>
      </sec>
    </sec>
    <sec id="sec-4">
      <title>5. Experiments</title>
      <p>We next describe our experiments using real-world
geospatial datasets encoded in JSON. For notational
simplicity, we will write “CFDs” when we refer to the subfamily
of unary constant conditional functional dependencies,
as introduced in Section 2.
5.1. Setup</p>
      <sec id="sec-4-1">
        <title>Implementation.</title>
        <p>Our prototype is implemented in
Python, using the library anytree for managing parse
trees. For schema validation, we use the Python library
jsonschema (clickable links in the PDF).</p>
        <p>
          For the “third-party” schema extraction tool, we
employ a tool that we have built in earlier work [
          <xref ref-type="bibr" rid="ref18 ref24">1</xref>
          ]. Note
that our approach is designed to work with any other tool
for JSON Schema extraction. Also, since we construct
the composite schema by combining two subschemas,
we are not restricted to Python-based tools.
        </p>
        <sec id="sec-4-1-1">
          <title>To confirm the composability of our approach, we have</title>
          <p>
            successfully built a variant of our architecture based on
the schema extraction tool by Frozza et al. [
            <xref ref-type="bibr" rid="ref47">31, 56</xref>
            ] (with
minor technical adaptions), but we do not report the
results, since they do not contribute new insights.
          </p>
        </sec>
      </sec>
      <sec id="sec-4-2">
        <title>Artifact availability and reproducibility.</title>
        <p>Our
research artifacts (code, data, extracted schemas), as well</p>
      </sec>
      <sec id="sec-4-3">
        <title>Datasets.</title>
        <sec id="sec-4-3-1">
          <title>We consider the five JSON datasets listed in Table 2, all in the GeoJSON or the related TopoJSON format. For simplicity, we will commonly treat the formats GeoJSON and TopoJSON synonymously, in discussing</title>
        </sec>
        <sec id="sec-4-3-2">
          <title>We identified these datasets by manually searching</title>
          <p>open data servers, as well as by performing a search over
all open-source licensed repositories on GitHub using
Google BigQuery. Our selection criteria were (1) a
sufdiferent types of geometries co-occur, so that we may
be able to infer tagged unions.</p>
        </sec>
        <sec id="sec-4-3-3">
          <title>We briefly describe the datasets:</title>
          <p>• Map Germany is a TopoJSON dataset,
describing a map of Germany and surrounding areas,
including cities, urban areas, and rivers. This
dataset uses geometry types Point, LineString,</p>
        </sec>
        <sec id="sec-4-3-4">
          <title>MultiLineString, Polygon and MultiPolygon.</title>
          <p>• Map EU is a TopoJSON dataset. Its structure is
comparable to Map Germany but describes
countries in the EU in detail and contains the borders
of some adjacent countries.
• WorldGen Berlin is a GeoJSON dataset from
Open</p>
        </sec>
        <sec id="sec-4-3-5">
          <title>StreetMap.</title>
          <p>• US House Members lists members of the US House
of representatives, including their place of birth,
hometown and congressional district, encoded in
• Wildlife Sites contains wildlife sites in West
Yorkshire, described either as a GeoJSON Polygon or</p>
        </sec>
        <sec id="sec-4-3-6">
          <title>GeoJSON.</title>
        </sec>
        <sec id="sec-4-3-7">
          <title>MultiPolygon.</title>
          <p>The datasets encode GeoJSON or the related TopoJSON
format (distinguished as formats “T” and “G” in the table).</p>
          <p>We list the size of each dataset in lines of code after
prettyprinting (column | |</p>
          <p>).</p>
          <p>In lieu of a ground truth describing the number of
conditional functional dependencies in the data that is not
GeoJSON-encoded, we report in the table the number
of detectable CFDs in the GeoJSON-parts only (</p>
          <p>).</p>
          <p>We manually determine this value for each dataset,
inspecting all distinct types of GeoJSON objects (e.g., Point,
LineString, Polygon) on each diferent path. We ignore
all paths where the value of the GeoJSON type does not
vary. While these can be detected as CFDs from the data,
they are not meaningful for recognizing tagged unions,
and should be modeled, for instance, simply as constant
values instead.
6
6
2
2
50%
35%
15%
50%
35%
15%
50%
35%
15%
50%
35%
15%
50%
35%
15%
|T|
(LoC)
126
158
190
95
95
127
150
182
278
54
54
54
38
38
92</p>
          <p>Ratio</p>
          <p>(TopoJSON or GeoJSON) and report its size (| |) in lines of code (LoC), the size of the conventionally extracted schema  (in
LoC) and the number of theoretically detectable Geo-/TopoJSON CFDs (

). For diferent threshold settings  min, we
produce a subschema  encoding the tagged unions. “Ratio ” reports the share of 
w.r.t. the size of the composite schema.</p>
          <p>Further, the number of CFDs initially discovered (w/o heuristics), after applying threshold  min (see Section 4.2.2), and after
applying the remaining default heuristics (see Section 4.2.1) are reported. The last column reports the result of checking
whether dataset</p>
          <p>is valid w.r.t. the extracted composite schema (a checkmark symbol “✓” denotes a successful check). The
checkmarks are clickable links, embedded in the PDF, to the composite schema.</p>
          <p>Format
|D|
(LoC)
|S|
(LoC)</p>
          <p>DetGeo
 min</p>
          <p>CFDs w/o
Heuristics</p>
          <p>CFDs
w/
 min</p>
          <p>CFDs w/
 min</p>
          <p>and
Heuristics
5.2. Experimental Design
Workflow. For each data collection, we extract com- schemas successfully validate against Draft-07, and
furposite schemas choosing three settings for the minimum
threshold  min: an aggressive setting of 50%, requiring a
conditional functional dependency to occur in at least
ther, that all JSON datasets validate against the composite
schemas.</p>
          <p>Decreasing the threshold  min leads to more
condihalf of the tuples in the relational encoding of all objects
tional functional dependencies being discovered. The
reachable by a given path, and more lenient settings with
share of the subschema encoding tagged unions
com35% and 15%, respectively.</p>
          <p>For each threshold setting, we generate schemas 
(from the third-party tool) and  (encoding the tagged
unions), as well as the composite schema.
pared to the entire composite schema ranges between
10% and up to approx. 38%. While the 38% share might
appear to be large, the composite schema has less than
250 lines in total, compared to 800K lines of JSON input.</p>
          <p>Each composite schema is validated against the spec- Thus, this dataset is highly regular in its structure, and
ification of JSON Schema</p>
          <p>Draft-07, confirming that the
the extracted schema comparatively compact.
composite schema conforms. The input datasets are
furFor the bottom three datasets, we detect conditional
ther validated against the extracted composite schema, functional dependencies in the hundreds, even more than
checking for any logical errors in schema extraction.
5.3. Results
printing), the number of conditional functional depen- target DetGeo). Note that there are only six distinct
geone thousand in the case of the WorldGen Berlin data.</p>
          <p>However, applying the threshold and the other
heuristics drastically reduces the dependencies towards the
number of tagged unions that we expect to find (c.f. the
ometries in GeoJSON which may, however, occur on
diferent paths, leading to more than six if-then-else
statements in the GeoJSON part.</p>
          <p>listed in Example 2), as well as synthetic data, and data
After applying heuristics and a threshold of 15%, we
not encoding any tagged unions, are required.
only miss two detectable CFDs in Map EU and three in
We do not focus on the performance of our
unoptiWorldGen Berlin. Missed CFDs can be attributed to the
mized prototype implementation, as the algorithm is
threshold being too coarse.</p>
          <p>
            Manually inspecting the final dependencies, we find
only executed once for each dataset. Of course,
scalability to larger inputs is an issue to be addressed in
one unexpected dependency for Wildlife Sites with a
future work, as CFD discovery in general is an expensive
threshold of 15%. This is the only false positive depen- problem: Already in addressing the discovery of
funcdency across all datasets. It results in a tagged union
tional dependencies in their full generality, algorithms
being declared for a specific date, which is not
semanhave exponential runtime complexity [
            <xref ref-type="bibr" rid="ref48">57</xref>
            ]. Several
algotically meaningful. Further, this dependency is outside
rithms for the specific problem of CFD discovery have
the GeoJSON-encoded part of the data, explaining why
been proposed [50]. Their evaluations show that runtime
the number of detected CFDs is higher than
          </p>
          <p>. performance depends heavily on the input, with some
Thus, we have a single case of overfitting for the datasets
algorithms scaling better with size of the dataset (i.e., the
analyzed. Overall, we observe very high precision in
recnumber of tuples) thus being suitable for large datasets,
ognizing the GeoJSON/TopoJSON dependencies resident
while others perform better with higher arity. For
conin the data.</p>
          <p>
            stant CFDs, Li et al. [
            <xref ref-type="bibr" rid="ref43">52</xref>
            ] achieved promising runtime
          </p>
          <p>We do not focus on runtime evaluation, as our im- improvements by applying custom rules for pruning the
plementation is prototypical and unoptimized. Yet to
search space.
provide a general perspective, we share our observation
With strong restrictions to the problem space, such as
that runtimes vary greatly between datasets, ranging
our restriction to unary constant CFDs in our case, we can
from roughly one second to approximately one minute.
expect reasonable runtime performance on real-world
This is a waiting time which we deem acceptable for a
inputs (which are often reasonably well-behaved).
non-interactive, irregular task.</p>
          <p>In our experiments, we observed a considerable impact
Since our approach is main-memory based, memory
of our heuristics and threshold on runtime, reducing the
is a physical limitation to the inputs that we can
proprocessing time for all datasets by up to two orders of
cess. For the datasets considered here, 16GB of RAM are
magnitude. This is promising for further optimizations.
suficient to run our experiments.
5.4. Discussion
The comparison between the number of dependencies
found with diferent heuristics shows the efectiveness
lar, this concerns the configuration knob represented by
minimum threshold.
with 50% obviously too rigid, but 15% delivering
meaningful results. In future work, we plan to investigate
how to auto-adjust the threshold, based on statistical
distributions obtained by profiling the input.</p>
          <p>An obvious threat to the generalizability of our
results — however promising they are — is that the
GeoJSON datasets are highly regular in their structure. In
the GeoJSON-part, they contain only a small number of
detectable dependencies, between two and eleven.
Therefore, we refrain from computing the metrics precision
and recall, as they are easily distorted when working
with small numbers. However, the manual inspection of
the derived dependencies, and the comparison against
the target DetGeo, shows that our approach is indeed
successful for the input datasets chosen.</p>
          <p>To counter the threat of generalizability, further
experiments over diferent real-world datasets (e.g., the datasets</p>
        </sec>
      </sec>
    </sec>
    <sec id="sec-5">
      <title>6. Conclusion and Outlook</title>
      <p>In this article, we proposed a method to infer conditional
functional dependencies from JSON data. We use the
unions in JSON schema extraction.</p>
      <p>This allows us to capture value-based constraints. In
with users, regarding the users’ preferences in schemas
over nested data. Their interviews reveal that
valuebased conditions have a greater influence on the
diferentiation of schema variants than structural constraints,
and are therefore preferred.</p>
      <p>In future work, our approach can be extended for the
extraction of further variants of dependencies, for
instance, traditional conditional functional dependencies
that capture implications between atomic property
values, or dependencies where the value of the tag property
implies the existence of a specific sibling property, as
discussed in greater detail in Section 4.3. This allows to
recognize a larger family of tagged unions.</p>
      <p>Our prototype implementation is currently
main-memory based, which limits the size of inputs that we can
handle. Making our implementation scale to larger inputs
is one of the immediate next steps. Here, we may build
upon first results by Mior [ 18], who shows that
discoverof these heuristics in pruning dependencies. In particu- identified dependencies as the basis for declaring tagged</p>
      <p>Our approach to setting this threshold is rather coarse, fact, in [35] Gallinucci et al. report on expert interviews</p>
    </sec>
  </body>
  <back>
    <ref-list>
      <ref id="ref1">
        <mixed-citation>
          <article-title>ing dependencies in a relational encoding of JSON data [4</article-title>
          ]
          <string-name>
            <given-names>P.</given-names>
            <surname>Contos</surname>
          </string-name>
          ,
          <string-name>
            <surname>M.</surname>
          </string-name>
          <article-title>Svoboda, JSON schema inference has inferior runtime performance when compared to dis- approaches</article-title>
          , in
          <source>: Proc. ER (Workshops)</source>
          ,
          <year>2020</year>
          , pp.
        </mixed-citation>
      </ref>
      <ref id="ref2">
        <mixed-citation>
          <article-title>covering dependencies in a streaming fashion</article-title>
          . Also, we
          <volume>173</volume>
          -
          <fpage>183</fpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref3">
        <mixed-citation>
          <article-title>plan to consider a MapReduce-based approach</article-title>
          to schema [5]
          <string-name>
            <given-names>I. Veinhardt</given-names>
            <surname>Latták</surname>
          </string-name>
          .,
          <string-name>
            <given-names>P.</given-names>
            <surname>Koupil.</surname>
          </string-name>
          ,
          <article-title>A comparative analextraction, as implemented by Baazizi et al</article-title>
          .
          <source>in [2]</source>
          <article-title>. ysis of JSON schema inference algorithms</article-title>
          ,
          <source>in: Proc.</source>
        </mixed-citation>
      </ref>
      <ref id="ref4">
        <mixed-citation>
          <string-name>
            <surname>Ultimately</surname>
          </string-name>
          ,
          <article-title>our goal is to obtain a schema declaration ENASE,</article-title>
          <year>2022</year>
          , pp.
          <fpage>379</fpage>
          -
          <lpage>386</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref5">
        <mixed-citation>
          <article-title>that human consumers consider to be comprehensive</article-title>
          , but [6]
          <string-name>
            <given-names>M.</given-names>
            <surname>Klettke</surname>
          </string-name>
          ,
          <string-name>
            <given-names>H.</given-names>
            <surname>Awolin</surname>
          </string-name>
          ,
          <string-name>
            <given-names>U.</given-names>
            <surname>Störl</surname>
          </string-name>
          ,
          <string-name>
            <surname>D.</surname>
          </string-name>
          <article-title>Müller, that may also be eficiently processed programmatically. S. Scherzinger, Uncovering the evolution history of In order to obtain more succinct schemas, we need to data lakes</article-title>
          ,
          <source>in: Proc. Big Data</source>
          ,
          <year>2017</year>
          , pp.
          <fpage>2462</fpage>
          -
          <lpage>2471</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref6">
        <mixed-citation>
          <article-title>resolve redundancies between the schema extracted by a [7] M. A</article-title>
          .
          <string-name>
            <surname>Baazizi</surname>
            ,
            <given-names>C.</given-names>
          </string-name>
          <string-name>
            <surname>Berti</surname>
            ,
            <given-names>D.</given-names>
          </string-name>
          <string-name>
            <surname>Colazzo</surname>
            , G. Ghelli,
            <given-names>C.</given-names>
          </string-name>
          <article-title>Sarthird-party tool and our encoding of tagged unions. This tiani, Human-in-the-loop schema inference for requires rewriting the composite schema based on an massive JSON datasets</article-title>
          ,
          <source>in: Proc. EDBT</source>
          ,
          <year>2020</year>
          , pp.
        </mixed-citation>
      </ref>
      <ref id="ref7">
        <mixed-citation>
          <article-title>algebraic representation of JSON Schema operators</article-title>
          , such
          <volume>635</volume>
          -
          <fpage>638</fpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref8">
        <mixed-citation>
          <article-title>as the schema algebra proposed by Attouche et al</article-title>
          . [
          <volume>13</volume>
          ]. [8]
          <string-name>
            <given-names>J.</given-names>
            <surname>Namba</surname>
          </string-name>
          ,
          <article-title>Enhancing JSON schema discovery by Further, identifying metrics that capture the quality of uncovering hidden data</article-title>
          ,
          <source>in: Proc. VLDB</source>
          <year>2021</year>
          <article-title>PhD the extracted schemas will allow to quantitatively com-</article-title>
          <source>Workshop</source>
          ,
          <year>2021</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref9">
        <mixed-citation>
          <article-title>pare schemas extracted by diferent approaches</article-title>
          .
          <source>Given</source>
          [9]
          <string-name>
            <given-names>M.</given-names>
            <surname>Droettboom</surname>
          </string-name>
          ,
          <article-title>Understanding JSON schema, suitable metrics, the configuration of heuristics could https://json-schema.org/understanding-jsoneven be adjusted automatically. A possible direction is schema/reference/conditionals.html#if-then-else, to explore the notions of precision and recall, and the 2022</article-title>
          .
          <source>Draft</source>
          <year>2020</year>
          -
          <volume>12</volume>
          .
        </mixed-citation>
      </ref>
      <ref id="ref10">
        <mixed-citation>
          <article-title>proxy-metric of schema entropy, as introduced by Spoth</article-title>
          [10]
          <string-name>
            <given-names>M. A.</given-names>
            <surname>Baazizi</surname>
          </string-name>
          ,
          <string-name>
            <given-names>D.</given-names>
            <surname>Colazzo</surname>
          </string-name>
          , G. Ghelli,
          <string-name>
            <given-names>C.</given-names>
            <surname>Sartiani</surname>
          </string-name>
          , et al.
          <source>in [3]</source>
          <string-name>
            <given-names>. S.</given-names>
            <surname>Scherzinger</surname>
          </string-name>
          ,
          <article-title>An empirical study on the "usage A further task is to adopt a CFD inference algorithm of not" in real-world JSON schema documents, in: that is robust despite poor data quality and that can infer Proc</article-title>
          .
          <source>ER</source>
          ,
          <year>2021</year>
          , pp.
          <fpage>102</fpage>
          -
          <lpage>112</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref11">
        <mixed-citation>
          <article-title>constraints despite outliers in the data</article-title>
          . Naturally, this [11]
          <string-name>
            <given-names>A. A.</given-names>
            <surname>Frozza</surname>
          </string-name>
          , R. dos Santos Mello,
          <article-title>Js4geo: A canonrequires a relaxation to “soft” CFDs, a task where we may ical JSON schema for geographic data suitable to also build upon existing work on relational [21] and even NoSQL databases</article-title>
          ,
          <source>GeoInformatica</source>
          <volume>24</volume>
          (
          <year>2020</year>
          )
          <fpage>987</fpage>
          - JSON data [
          <volume>18</volume>
          ]. 1019.
        </mixed-citation>
      </ref>
      <ref id="ref12">
        <mixed-citation>
          <article-title>In summary, our long-term vision is to extract com-</article-title>
          [12]
          <string-name>
            <given-names>S.</given-names>
            <surname>Klessinger</surname>
          </string-name>
          ,
          <string-name>
            <given-names>M.</given-names>
            <surname>Klettke</surname>
          </string-name>
          ,
          <string-name>
            <given-names>U.</given-names>
            <surname>Störl</surname>
          </string-name>
          ,
          <string-name>
            <surname>S.</surname>
          </string-name>
          <article-title>Scherzinger, prehensible and therefore human-consumable schema Extracting JSON Schemas with Tagged declarations from JSON data. We believe that the detec-</article-title>
          <source>Unions (Reproduction Package)</source>
          ,
          <year>2022</year>
          .
          <article-title>URL: tion of schema design patterns that are popular among https://doi</article-title>
          .org/10.5281/zenodo.6985647.
        </mixed-citation>
      </ref>
      <ref id="ref13">
        <mixed-citation>
          <article-title>schema designers, such as tagged unions</article-title>
          ,
          <source>is an important doi:10</source>
          .5281/zenodo.6985647.
        </mixed-citation>
      </ref>
      <ref id="ref14">
        <mixed-citation>
          <article-title>building block towards realizing this vision</article-title>
          . [13]
          <string-name>
            <given-names>L.</given-names>
            <surname>Attouche</surname>
          </string-name>
          ,
          <string-name>
            <given-names>M. A.</given-names>
            <surname>Baazizi</surname>
          </string-name>
          ,
          <string-name>
            <given-names>D.</given-names>
            <surname>Colazzo</surname>
          </string-name>
          , G. Ghelli,
          <string-name>
            <given-names>C.</given-names>
            <surname>Sartiani</surname>
          </string-name>
          ,
          <string-name>
            <given-names>S.</given-names>
            <surname>Scherzinger</surname>
          </string-name>
          , Witness generaAcknowledgments:
          <article-title>This work was funded by Deut- tion for JSON schema</article-title>
          ,
          <source>CoRR abs/2202</source>
          .12849 sche
          <string-name>
            <surname>Forschungsgemeinschaft</surname>
          </string-name>
          (DFG, German Research (
          <year>2022</year>
          ). URL: https://arxiv.org/abs/2202.12849.
        </mixed-citation>
      </ref>
      <ref id="ref15">
        <mixed-citation>
          Foundation) grant #
          <fpage>385808805</fpage>
          . We thank Thomas Kirz arXiv:
          <volume>2202</volume>
          .
          <fpage>12849</fpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref16">
        <mixed-citation>
          <article-title>for expertly typesetting the systems architecture in LATEX</article-title>
          . [14]
          <string-name>
            <given-names>F.</given-names>
            <surname>Pezoa</surname>
          </string-name>
          ,
          <string-name>
            <given-names>J. L.</given-names>
            <surname>Reutter</surname>
          </string-name>
          ,
          <string-name>
            <given-names>F.</given-names>
            <surname>Suárez</surname>
          </string-name>
          ,
          <string-name>
            <given-names>M.</given-names>
            <surname>Ugarte</surname>
          </string-name>
          ,
          <string-name>
            <given-names>D.</given-names>
            <surname>Vrgoc</surname>
          </string-name>
          ,
          <article-title>We thank the anonymous reviewers of DEco'22, espe- Foundations of JSON Schema, in: Proc. WWW, cially reviewer #2, for the detailed and helpful feedback</article-title>
          .
          <source>2016</source>
          , pp.
          <fpage>263</fpage>
          -
          <lpage>273</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref17">
        <mixed-citation>
          [15]
          <string-name>
            <given-names>F.</given-names>
            <surname>Suárez</surname>
          </string-name>
          ,
          <string-name>
            <given-names>J.</given-names>
            <surname>Reutter</surname>
          </string-name>
          ,
          <string-name>
            <given-names>D.</given-names>
            <surname>Vrgoc</surname>
          </string-name>
          ,
          <string-name>
            <given-names>M.</given-names>
            <surname>Ugarte</surname>
          </string-name>
          ,
          <string-name>
            <given-names>F.</given-names>
            <surname>Pezoa</surname>
          </string-name>
          , JSON Schema:
          <article-title>Multiple Types (Software)</article-title>
          , https:// References cswr.github.io/JsonSchema/spec/multiple_types/,
          <year>2016</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref18">
        <mixed-citation>
          [1]
          <string-name>
            <given-names>M.</given-names>
            <surname>Klettke</surname>
          </string-name>
          ,
          <string-name>
            <given-names>U.</given-names>
            <surname>Störl</surname>
          </string-name>
          ,
          <string-name>
            <given-names>S.</given-names>
            <surname>Scherzinger</surname>
          </string-name>
          , Schema extrac- [16]
          <string-name>
            <given-names>P.</given-names>
            <surname>Bohannon</surname>
          </string-name>
          ,
          <string-name>
            <given-names>W.</given-names>
            <surname>Fan</surname>
          </string-name>
          ,
          <string-name>
            <given-names>F.</given-names>
            <surname>Geerts</surname>
          </string-name>
          ,
          <string-name>
            <given-names>X.</given-names>
            <surname>Jia</surname>
          </string-name>
          ,
          <string-name>
            <surname>A.</surname>
          </string-name>
          <article-title>Kementsition and structural outlier detection for JSON-based etsidis, Conditional functional dependencies for NoSQL data stores</article-title>
          ,
          <source>in: Proc. BTW</source>
          , volume P-
          <volume>241</volume>
          , data cleaning,
          <source>in: Proc. ICDE</source>
          ,
          <year>2007</year>
          , pp.
          <fpage>746</fpage>
          -
          <lpage>755</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref19">
        <mixed-citation>
          <string-name>
            <surname>GI</surname>
          </string-name>
          ,
          <year>2015</year>
          , pp.
          <fpage>425</fpage>
          -
          <lpage>444</lpage>
          . [17]
          <string-name>
            <given-names>M.</given-names>
            <surname>Arenas</surname>
          </string-name>
          ,
          <string-name>
            <given-names>L.</given-names>
            <surname>Libkin</surname>
          </string-name>
          ,
          <article-title>A normal form for xml [2] M. A</article-title>
          .
          <string-name>
            <surname>Baazizi</surname>
            ,
            <given-names>D.</given-names>
          </string-name>
          <string-name>
            <surname>Colazzo</surname>
          </string-name>
          , G. Ghelli, C. Sartiani, documents,
          <source>ACM Trans. Database Syst</source>
          .
          <volume>29</volume>
          (
          <issue>2004</issue>
          )
          <article-title>Parametric schema inference for massive JSON 195-232</article-title>
          .
        </mixed-citation>
      </ref>
      <ref id="ref20">
        <mixed-citation>
          <string-name>
            <surname>datasets</surname>
          </string-name>
          , VLDB J.
          <volume>28</volume>
          (
          <year>2019</year>
          )
          <fpage>497</fpage>
          -
          <lpage>521</lpage>
          . [18]
          <string-name>
            <surname>M. J. Mior</surname>
            , Fast discovery of nested dependencies on [3]
            <given-names>W.</given-names>
          </string-name>
          <string-name>
            <surname>Spoth</surname>
            ,
            <given-names>O.</given-names>
          </string-name>
          <string-name>
            <surname>Kennedy</surname>
            ,
            <given-names>Y.</given-names>
          </string-name>
          <string-name>
            <surname>Lu</surname>
            ,
            <given-names>B. C.</given-names>
          </string-name>
          <string-name>
            <surname>Hammerschmidt</surname>
          </string-name>
          ,
          <article-title>JSON data</article-title>
          ,
          <source>CoRR abs/2111</source>
          .10398 (
          <year>2021</year>
          ). URL: https:
          <string-name>
            <given-names>Z. H.</given-names>
            <surname>Liu</surname>
          </string-name>
          , Reducing Ambiguity in JSON Schema //arxiv.org/abs/2111.10398. arXiv:
          <volume>2111</volume>
          .
          <fpage>10398</fpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref21">
        <mixed-citation>
          <string-name>
            <surname>Discovery</surname>
          </string-name>
          , in
          <source>: Proc. SIGMOD</source>
          ,
          <year>2021</year>
          , pp.
          <fpage>1732</fpage>
          -
          <lpage>1744</lpage>
          . [19]
          <string-name>
            <given-names>S.</given-names>
            <surname>Kruse</surname>
          </string-name>
          ,
          <string-name>
            <given-names>A.</given-names>
            <surname>Jentzsch</surname>
          </string-name>
          ,
          <string-name>
            <given-names>T.</given-names>
            <surname>Papenbrock</surname>
          </string-name>
          ,
          <string-name>
            <given-names>Z.</given-names>
            <surname>Kaoudi</surname>
          </string-name>
          ,
          <string-name>
            <given-names>J.</given-names>
            <surname>Quiané-Ruiz</surname>
          </string-name>
          ,
          <string-name>
            <given-names>F.</given-names>
            <surname>Naumann</surname>
          </string-name>
          , Rdfind: Scalable con- [35]
          <string-name>
            <given-names>E.</given-names>
            <surname>Gallinucci</surname>
          </string-name>
          ,
          <string-name>
            <given-names>M.</given-names>
            <surname>Golfarelli</surname>
          </string-name>
          ,
          <string-name>
            <given-names>S.</given-names>
            <surname>Rizzi</surname>
          </string-name>
          ,
          <article-title>Schema profilditional inclusion dependency discovery in RDF ing of document-oriented databases</article-title>
          ,
          <source>Inf. Syst</source>
          .
          <volume>75</volume>
          datasets, in
          <source>: Proc. SIGMOD</source>
          ,
          <year>2016</year>
          , pp.
          <fpage>953</fpage>
          -
          <lpage>967</lpage>
          . (
          <year>2018</year>
          )
          <fpage>13</fpage>
          -
          <lpage>25</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref22">
        <mixed-citation>
          [20]
          <string-name>
            <given-names>J.</given-names>
            <surname>Friesen</surname>
          </string-name>
          ,
          <string-name>
            <surname>Java</surname>
            <given-names>XML</given-names>
          </string-name>
          and JSON: Document Process- [36]
          <string-name>
            <given-names>S.</given-names>
            <surname>Song</surname>
          </string-name>
          ,
          <string-name>
            <given-names>F.</given-names>
            <surname>Gao</surname>
          </string-name>
          ,
          <string-name>
            <given-names>R.</given-names>
            <surname>Huang</surname>
          </string-name>
          ,
          <string-name>
            <given-names>C.</given-names>
            <surname>Wang</surname>
          </string-name>
          ,
          <article-title>Data depening for Java SE</article-title>
          , Apress,
          <year>2019</year>
          , pp.
          <fpage>299</fpage>
          -
          <lpage>322</lpage>
          .
          <article-title>dencies extended for variety and veracity: A family [</article-title>
          21]
          <string-name>
            <given-names>J.</given-names>
            <surname>Rammelaere</surname>
          </string-name>
          ,
          <string-name>
            <given-names>F.</given-names>
            <surname>Geerts</surname>
          </string-name>
          ,
          <article-title>Revisiting conditional tree, IEEE Transactions on Knowledge and Data functional dependency discovery: Splitting the "C" Engineering 34 (</article-title>
          <year>2022</year>
          )
          <fpage>4717</fpage>
          -
          <lpage>4736</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref23">
        <mixed-citation>
          <article-title>from the "FD"</article-title>
          ,
          <source>in: Proc. ECML PKDD</source>
          ,
          <year>2018</year>
          , pp. [37]
          <string-name>
            <given-names>M. L.</given-names>
            <surname>Lee</surname>
          </string-name>
          ,
          <string-name>
            <given-names>T. W.</given-names>
            <surname>Ling</surname>
          </string-name>
          ,
          <string-name>
            <given-names>W. L.</given-names>
            <surname>Low</surname>
          </string-name>
          ,
          <source>Designing func552-568. tional dependencies for XML, in: Proc. EDBT</source>
          ,
          <year>2002</year>
          , [
          <volume>22</volume>
          ]
          <fpage>W3C</fpage>
          ,
          <article-title>W3C XML Schema Definition Language pp</article-title>
          .
          <fpage>124</fpage>
          -
          <lpage>141</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref24">
        <mixed-citation>
          <source>(XSD) 1.1 Part</source>
          <volume>1</volume>
          : Structures, W3C Recom- [38]
          <string-name>
            <given-names>S.</given-names>
            <surname>Hartmann</surname>
          </string-name>
          ,
          <string-name>
            <given-names>S.</given-names>
            <surname>Link</surname>
          </string-name>
          , More functional dependencies mendation,
          <year>2012</year>
          . URL: https://www.w3.org/TR/ for xml, in: L.
          <string-name>
            <surname>Kalinichenko</surname>
            ,
            <given-names>R.</given-names>
          </string-name>
          <string-name>
            <surname>Manthey</surname>
          </string-name>
          , B.
          <fpage>Thalxmlschema11</fpage>
          -1/. heim, U. Wloka (Eds.),
          <source>Advances in Databases and [23] ISO/IEC, ISO/IEC 19757-3:2020 Information tech- Information Systems</source>
          , Springer Berlin Heidelberg, nology - Document
          <source>Schema Definition Languages Berlin</source>
          , Heidelberg,
          <year>2003</year>
          , pp.
          <fpage>355</fpage>
          -
          <lpage>369</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref25">
        <mixed-citation>
          <string-name>
            <surname>(DSDL</surname>
          </string-name>
          )
          <article-title>- Part 3: Rule-based validation</article-title>
          - Schema- [39]
          <string-name>
            <given-names>L.</given-names>
            <surname>Kot</surname>
          </string-name>
          ,
          <string-name>
            <given-names>W. M.</given-names>
            <surname>White</surname>
          </string-name>
          ,
          <article-title>Characterization of the intertron</article-title>
          , ISO/IEC Standard,
          <year>2020</year>
          . URL: https://www. action
          <article-title>of XML functional dependencies with DTDs, iso</article-title>
          .org/standard/74515.html. in
          <source>: Proc. ICDT</source>
          ,
          <year>2007</year>
          , pp.
          <fpage>119</fpage>
          -
          <lpage>133</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref26">
        <mixed-citation>
          [24] ISO/IEC, ISO/IEC 19757-2:2008 Information tech- [40]
          <string-name>
            <given-names>S.</given-names>
            <surname>Kruse</surname>
          </string-name>
          ,
          <string-name>
            <given-names>T.</given-names>
            <surname>Papenbrock</surname>
          </string-name>
          ,
          <string-name>
            <given-names>F.</given-names>
            <surname>Naumann</surname>
          </string-name>
          ,
          <article-title>Scaling out nology - Document Schema Definition Language the discovery of inclusion dependencies</article-title>
          ,
          <source>in: Proc.</source>
        </mixed-citation>
      </ref>
      <ref id="ref27">
        <mixed-citation>
          <string-name>
            <surname>(DSDL</surname>
          </string-name>
          )
          <article-title>- Part 2: Regular-grammar-based valida-</article-title>
          <source>BTW</source>
          ,
          <year>2015</year>
          , pp.
          <fpage>445</fpage>
          -
          <lpage>454</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref28">
        <mixed-citation>
          <string-name>
            <surname>tion - RELAX</surname>
            <given-names>NG</given-names>
          </string-name>
          , ISO/IEC Standard,
          <year>2008</year>
          . URL: [41]
          <string-name>
            <given-names>T.</given-names>
            <surname>Vajk</surname>
          </string-name>
          ,
          <string-name>
            <given-names>P.</given-names>
            <surname>Fehér</surname>
          </string-name>
          ,
          <string-name>
            <given-names>K.</given-names>
            <surname>Fekete</surname>
          </string-name>
          ,
          <string-name>
            <given-names>H.</given-names>
            <surname>Charaf</surname>
          </string-name>
          , Denormalhttps://www.iso.org/standard/52348.html.
          <article-title>izing data into schema-free databases</article-title>
          ,
          <source>in: Proc.</source>
        </mixed-citation>
      </ref>
      <ref id="ref29">
        <mixed-citation>
          [25]
          <string-name>
            <given-names>M.</given-names>
            <surname>Garofalakis</surname>
          </string-name>
          ,
          <string-name>
            <given-names>A.</given-names>
            <surname>Gionis</surname>
          </string-name>
          ,
          <string-name>
            <given-names>R.</given-names>
            <surname>Rastogi</surname>
          </string-name>
          , S. Seshadri, CogInfoCom,
          <year>2013</year>
          , pp.
          <fpage>747</fpage>
          -
          <lpage>752</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref30">
        <mixed-citation>
          <string-name>
            <given-names>K.</given-names>
            <surname>Shim</surname>
          </string-name>
          ,
          <article-title>XTRACT: A system for extracting docu</article-title>
          - [42]
          <string-name>
            <given-names>X.</given-names>
            <surname>Chu</surname>
          </string-name>
          ,
          <string-name>
            <given-names>I. F.</given-names>
            <surname>Ilyas</surname>
          </string-name>
          ,
          <string-name>
            <given-names>S.</given-names>
            <surname>Krishnan</surname>
          </string-name>
          ,
          <string-name>
            <given-names>J.</given-names>
            <surname>Wang</surname>
          </string-name>
          ,
          <article-title>Data cleanment type descriptors from XML documents, in: ing: Overview and emerging challenges</article-title>
          ,
          <source>in: Proc.</source>
        </mixed-citation>
      </ref>
      <ref id="ref31">
        <mixed-citation>
          <source>Proc. SIGMOD</source>
          ,
          <year>2000</year>
          , pp.
          <fpage>165</fpage>
          -
          <lpage>176</lpage>
          . SIGMOD,
          <year>2016</year>
          , pp.
          <fpage>2201</fpage>
          -
          <lpage>2206</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref32">
        <mixed-citation>
          [26]
          <string-name>
            <surname>C.-H. Moh</surname>
            ,
            <given-names>E.-P.</given-names>
          </string-name>
          <string-name>
            <surname>Lim</surname>
            , W.-K. Ng, DTD-Miner: a tool [43]
            <given-names>S.</given-names>
          </string-name>
          <string-name>
            <surname>Schelter</surname>
            ,
            <given-names>D.</given-names>
          </string-name>
          <string-name>
            <surname>Lange</surname>
            ,
            <given-names>P.</given-names>
          </string-name>
          <string-name>
            <surname>Schmidt</surname>
            ,
            <given-names>M.</given-names>
          </string-name>
          <string-name>
            <surname>Celikel</surname>
            ,
            <given-names>F.</given-names>
          </string-name>
          <article-title>Biessfor mining DTD from XML documents</article-title>
          , in
          <source>: Proc. mann, A. Grafberger, Automating large-scale data WECWIS</source>
          ,
          <year>2000</year>
          , pp.
          <fpage>144</fpage>
          -
          <lpage>151</lpage>
          . quality verification,
          <source>Proc. VLDB Endow</source>
          .
          <volume>11</volume>
          (
          <year>2018</year>
          ) [27]
          <string-name>
            <given-names>J.</given-names>
            <surname>Hegewald</surname>
          </string-name>
          ,
          <string-name>
            <given-names>F.</given-names>
            <surname>Naumann</surname>
          </string-name>
          ,
          <string-name>
            <given-names>M.</given-names>
            <surname>Weis</surname>
          </string-name>
          , Xstruct: Ef-
          <volume>1781</volume>
          -1794.
        </mixed-citation>
      </ref>
      <ref id="ref33">
        <mixed-citation>
          <article-title>ifcient schema extraction from multiple</article-title>
          and large [44]
          <string-name>
            <given-names>J.</given-names>
            <surname>Kivinen</surname>
          </string-name>
          ,
          <string-name>
            <given-names>H.</given-names>
            <surname>Mannila</surname>
          </string-name>
          ,
          <article-title>Approximate inference of XML documents</article-title>
          , in
          <source>: Proc. Workshops ICDE</source>
          ,
          <year>2006</year>
          .
          <article-title>functional dependencies from relations</article-title>
          ,
          <source>Theoretical</source>
          [28]
          <string-name>
            <given-names>M.</given-names>
            <surname>Klempa</surname>
          </string-name>
          ,
          <string-name>
            <given-names>M.</given-names>
            <surname>Kozák</surname>
          </string-name>
          ,
          <string-name>
            <given-names>M.</given-names>
            <surname>Mikula</surname>
          </string-name>
          ,
          <string-name>
            <given-names>R.</given-names>
            <surname>Smetana</surname>
          </string-name>
          , Computer Science 149 (
          <year>1995</year>
          )
          <fpage>129</fpage>
          -
          <lpage>149</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref34">
        <mixed-citation>
          <string-name>
            <given-names>J.</given-names>
            <surname>Stárka</surname>
          </string-name>
          ,
          <string-name>
            <given-names>M.</given-names>
            <surname>Svirec</surname>
          </string-name>
          ,
          <string-name>
            <given-names>M.</given-names>
            <surname>Vitásek</surname>
          </string-name>
          ,
          <string-name>
            <given-names>M.</given-names>
            <surname>Necaský</surname>
          </string-name>
          , I. Hol- [45]
          <string-name>
            <given-names>H.</given-names>
            <surname>Mannila</surname>
          </string-name>
          ,
          <string-name>
            <surname>K.-J. Räihä</surname>
          </string-name>
          ,
          <article-title>On the complexity of inubová, jInfer: A framework for XML schema infer- ferring functional dependencies, Discrete Applied ence</article-title>
          ,
          <source>Comput. J</source>
          .
          <volume>58</volume>
          (
          <year>2015</year>
          )
          <fpage>134</fpage>
          -
          <lpage>156</lpage>
          . Mathematics 40 (
          <year>1992</year>
          )
          <fpage>237</fpage>
          -
          <lpage>243</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref35">
        <mixed-citation>
          [29]
          <string-name>
            <given-names>B.</given-names>
            <surname>Chidlovskii</surname>
          </string-name>
          , Schema extraction from xml collec- [46]
          <string-name>
            <given-names>H.</given-names>
            <surname>Yao</surname>
          </string-name>
          ,
          <string-name>
            <given-names>H. J.</given-names>
            <surname>Hamilton</surname>
          </string-name>
          ,
          <article-title>Mining functional depentions</article-title>
          ,
          <source>in: Proc. JCDL</source>
          ,
          <year>2002</year>
          , p.
          <fpage>291</fpage>
          -
          <lpage>292</lpage>
          .
          <article-title>dencies from data</article-title>
          ,
          <source>Data Mining and Knowledge</source>
          [30]
          <string-name>
            <given-names>I.</given-names>
            <surname>Mlýnková</surname>
          </string-name>
          ,
          <string-name>
            <given-names>M.</given-names>
            <surname>Nečaský</surname>
          </string-name>
          ,
          <source>Heuristic methods for in- Discovery</source>
          <volume>16</volume>
          (
          <year>2008</year>
          )
          <fpage>197</fpage>
          -
          <lpage>219</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref36">
        <mixed-citation>
          <article-title>ference of xml schemas: Lessons learned</article-title>
          and open [47]
          <string-name>
            <given-names>T.</given-names>
            <surname>Papenbrock</surname>
          </string-name>
          ,
          <string-name>
            <given-names>F.</given-names>
            <surname>Naumann</surname>
          </string-name>
          ,
          <article-title>A hybrid approach issues</article-title>
          ,
          <source>Informatica</source>
          <volume>24</volume>
          (
          <year>2013</year>
          )
          <fpage>577</fpage>
          -
          <lpage>602</lpage>
          . to functional dependency discovery,
          <source>in: Proc. SIG</source>
          [31]
          <string-name>
            <given-names>A. A.</given-names>
            <surname>Frozza</surname>
          </string-name>
          , R. dos Santos Mello, F. de Souza da MOD,
          <year>2016</year>
          , pp.
          <fpage>821</fpage>
          -
          <lpage>833</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref37">
        <mixed-citation>
          <string-name>
            <surname>Costa</surname>
          </string-name>
          ,
          <article-title>An approach for schema extraction</article-title>
          of JSON [48]
          <string-name>
            <given-names>J.</given-names>
            <surname>Bauckmann</surname>
          </string-name>
          ,
          <string-name>
            <given-names>U.</given-names>
            <surname>Leser</surname>
          </string-name>
          ,
          <string-name>
            <given-names>F.</given-names>
            <surname>Naumann</surname>
          </string-name>
          ,
          <string-name>
            <given-names>V.</given-names>
            <surname>Tietz</surname>
          </string-name>
          ,
          <article-title>Efiand extended JSON document collections, in: Proc. ciently detecting inclusion dependencies</article-title>
          ,
          <source>in: Proc.</source>
        </mixed-citation>
      </ref>
      <ref id="ref38">
        <mixed-citation>
          <string-name>
            <surname>IRI</surname>
          </string-name>
          ,
          <year>2018</year>
          , pp.
          <fpage>356</fpage>
          -
          <lpage>363</lpage>
          . ICDE,
          <year>2007</year>
          , pp.
          <fpage>1448</fpage>
          -
          <lpage>1450</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref39">
        <mixed-citation>
          [32]
          <string-name>
            <given-names>D. S.</given-names>
            <surname>Ruiz</surname>
          </string-name>
          ,
          <string-name>
            <given-names>S. F.</given-names>
            <surname>Morales</surname>
          </string-name>
          ,
          <string-name>
            <given-names>J. G.</given-names>
            <surname>Molina</surname>
          </string-name>
          , Inferring [49]
          <string-name>
            <given-names>R.</given-names>
            <surname>Hai</surname>
          </string-name>
          ,
          <string-name>
            <given-names>C.</given-names>
            <surname>Quix</surname>
          </string-name>
          ,
          <string-name>
            <given-names>D.</given-names>
            <surname>Wang</surname>
          </string-name>
          ,
          <article-title>Relaxed functional deversioned schemas from NoSQL databases and its pendency discovery in heterogeneous data lakes, applications</article-title>
          , in
          <source>: Proc. ER</source>
          ,
          <year>2015</year>
          , pp.
          <fpage>467</fpage>
          -
          <lpage>480</lpage>
          . in
          <source>: Proc. ER</source>
          ,
          <year>2019</year>
          , pp.
          <fpage>225</fpage>
          -
          <lpage>239</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref40">
        <mixed-citation>
          [33]
          <string-name>
            <given-names>J. L. C.</given-names>
            <surname>Izquierdo</surname>
          </string-name>
          ,
          <string-name>
            <given-names>J.</given-names>
            <surname>Cabot</surname>
          </string-name>
          , Discovering implicit [50]
          <string-name>
            <given-names>W.</given-names>
            <surname>Fan</surname>
          </string-name>
          ,
          <string-name>
            <given-names>F.</given-names>
            <surname>Geerts</surname>
          </string-name>
          ,
          <string-name>
            <given-names>L. V. S.</given-names>
            <surname>Lakshmanan</surname>
          </string-name>
          ,
          <string-name>
            <surname>M.</surname>
          </string-name>
          <article-title>Xiong, schemas in JSON data</article-title>
          ,
          <source>in: Proc. ICWE</source>
          ,
          <year>2013</year>
          , pp.
          <source>Discovering conditional functional dependencies</source>
          ,
          <fpage>68</fpage>
          -
          <lpage>83</lpage>
          . in
          <source>: Proc. ICDE</source>
          ,
          <year>2009</year>
          , pp.
          <fpage>1231</fpage>
          -
          <lpage>1234</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref41">
        <mixed-citation>
          [34]
          <string-name>
            <given-names>D.</given-names>
            <surname>Durner</surname>
          </string-name>
          ,
          <string-name>
            <given-names>V.</given-names>
            <surname>Leis</surname>
          </string-name>
          , T. Neumann, JSON tiles: Fast an- [51]
          <string-name>
            <given-names>W.</given-names>
            <surname>Fan</surname>
          </string-name>
          ,
          <string-name>
            <given-names>F.</given-names>
            <surname>Geerts</surname>
          </string-name>
          ,
          <string-name>
            <given-names>J.</given-names>
            <surname>Li</surname>
          </string-name>
          ,
          <string-name>
            <given-names>M.</given-names>
            <surname>Xiong</surname>
          </string-name>
          ,
          <article-title>Discovering alytics on semi-structured data</article-title>
          ,
          <source>in: Proc. SIGMOD</source>
          , conditional functional dependencies,
          <source>IEEE Trans.</source>
        </mixed-citation>
      </ref>
      <ref id="ref42">
        <mixed-citation>
          <year>2021</year>
          , pp.
          <fpage>445</fpage>
          -
          <lpage>458</lpage>
          . Knowl.
          <source>Data Eng</source>
          .
          <volume>23</volume>
          (
          <year>2011</year>
          )
          <fpage>683</fpage>
          -
          <lpage>698</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref43">
        <mixed-citation>
          [52]
          <string-name>
            <given-names>J.</given-names>
            <surname>Li</surname>
          </string-name>
          ,
          <string-name>
            <given-names>J.</given-names>
            <surname>Liu</surname>
          </string-name>
          ,
          <string-name>
            <given-names>H.</given-names>
            <surname>Toivonen</surname>
          </string-name>
          ,
          <string-name>
            <given-names>J.</given-names>
            <surname>Yong</surname>
          </string-name>
          ,
          <article-title>Efective pruning for the discovery of conditional functional dependencies, Comput</article-title>
          . J.
          <volume>56</volume>
          (
          <year>2013</year>
          )
          <fpage>378</fpage>
          -
          <lpage>392</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref44">
        <mixed-citation>
          [53]
          <string-name>
            <given-names>I. F.</given-names>
            <surname>Ilyas</surname>
          </string-name>
          ,
          <string-name>
            <given-names>X.</given-names>
            <surname>Chu</surname>
          </string-name>
          , Data Cleaning, ACM,
          <year>2019</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref45">
        <mixed-citation>
          [54]
          <string-name>
            <given-names>P.</given-names>
            <surname>Schirmer</surname>
          </string-name>
          ,
          <string-name>
            <given-names>T.</given-names>
            <surname>Papenbrock</surname>
          </string-name>
          ,
          <string-name>
            <given-names>S.</given-names>
            <surname>Kruse</surname>
          </string-name>
          ,
          <string-name>
            <given-names>F.</given-names>
            <surname>Naumann</surname>
          </string-name>
          ,
          <string-name>
            <given-names>D.</given-names>
            <surname>Hempfing</surname>
          </string-name>
          ,
          <string-name>
            <given-names>T.</given-names>
            <surname>Mayer</surname>
          </string-name>
          ,
          <string-name>
            <surname>D.</surname>
          </string-name>
          Neuschäfer-Rube,
          <article-title>Dynfd: Functional dependency discovery in dynamic datasets</article-title>
          ,
          <source>in: Proc. EDBT</source>
          ,
          <year>2019</year>
          , pp.
          <fpage>253</fpage>
          -
          <lpage>264</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref46">
        <mixed-citation>
          [55]
          <string-name>
            <given-names>Z.</given-names>
            <surname>Wei</surname>
          </string-name>
          ,
          <string-name>
            <given-names>S.</given-names>
            <surname>Link</surname>
          </string-name>
          ,
          <article-title>Discovery and ranking of functional dependencies</article-title>
          ,
          <source>in: Proc. ICDE</source>
          ,
          <year>2019</year>
          , pp.
          <fpage>1526</fpage>
          -
          <lpage>1537</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref47">
        <mixed-citation>
          [56]
          <string-name>
            <given-names>A. A.</given-names>
            <surname>Frozza</surname>
          </string-name>
          , R. dos Santos Mello, F. de
          <article-title>Souza da Costa, An approach for schema extraction of JSON and extended JSON document collections (software</article-title>
          ), https://github.com/gbd-ufsc/ JSONSchemaDiscovery,
          <year>2018</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref48">
        <mixed-citation>
          [57]
          <string-name>
            <given-names>J.</given-names>
            <surname>Liu</surname>
          </string-name>
          ,
          <string-name>
            <given-names>J.</given-names>
            <surname>Li</surname>
          </string-name>
          ,
          <string-name>
            <given-names>C.</given-names>
            <surname>Liu</surname>
          </string-name>
          ,
          <string-name>
            <given-names>Y.</given-names>
            <surname>Chen</surname>
          </string-name>
          ,
          <article-title>Discover dependencies from data - A review</article-title>
          ,
          <source>IEEE Trans. Knowl. Data Eng.</source>
        </mixed-citation>
      </ref>
    </ref-list>
  </back>
</article>