<!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>Enhancing JSON Schema Discovery by Uncovering Hidden Data</article-title>
      </title-group>
      <contrib-group>
        <contrib contrib-type="author">
          <string-name>Justin R. Namba supervised by Michael J. Mior</string-name>
          <xref ref-type="aff" rid="aff0">0</xref>
        </contrib>
        <aff id="aff0">
          <label>0</label>
          <institution>Rochester Institute of Technology Rochester</institution>
          ,
          <addr-line>New York</addr-line>
          ,
          <country country="US">USA</country>
        </aff>
      </contrib-group>
      <abstract>
        <p>Schema discovery is finding the structure of data. It helps users understand the meaning of data and write queries to manipulate it. This is typically easy for relational databases, but complex for non-relational (NoSQL) databases with JavaScript Object Notation (JSON) documents. JSON is a representation of documents that contain objects stored in the form of nested key-value pairs. For relational databases, the schema is predefined because the data they contain is structured, but for NoSQL databases, data is usually unstructured or semi-structured. In a collection of JSON documents, the structure of one document can be completely diferent from another. Several algorithms were developed to discover schemas from JSON documents, but they provide the physical structure and semantic information that is insuficient for data understanding and analysis. In this paper, we enumerate the major techniques used to extract a schema from JSON documents and present the next challenge: uncovering hidden data disguised as metadata. This challenge needs to be addressed within the field of JSON schema discovery to enhance the quality of the discovered schemas.</p>
      </abstract>
    </article-meta>
  </front>
  <body>
    <sec id="sec-1">
      <title>INTRODUCTION</title>
      <p>
        NoSQL is an approach to database design that can accommodate a
wide variety of data models, including key-value, document, and
graph formats [
        <xref ref-type="bibr" rid="ref6">6</xref>
        ]. It provides an alternative to relational databases
in which data is placed into tables and the schema is designed before
the database is populated [
        <xref ref-type="bibr" rid="ref10">10</xref>
        ]. Over the years, NoSQL databases
have become popular because of their flexibility and performance.
However, analyzing NoSQL data is challenging because of the lack
of schema. We focus on data represented in JSON format, which is
semi-structured and consists of documents stored in the form of
nested key-value pairs. A key is a string that represents the name of
an attribute, and the value is an instance of the attribute that can be
a string, a number, a Boolean, an array, or a nested key-value pair.
Diferent documents within the same database may have a diferent
structure, therefore a query intended to retrieve one document may
not work for another. Many researchers have designed algorithms to
analyze JSON documents and extract schemas from them. However,
their contributions mainly provide the structure of the schema,
but lacks additional information on how the JSON documents are
related that will enhance the quality of the discovered schemas.
We aim to extract this additional information by addressing the
following challenge: distinguishing data from metadata.
      </p>
      <p>
        In this challenge, we aim to uncover hidden data disguised as
metadata by separating data from metadata. In relational databases,
there is a clear line that separates data from metadata, but in JSON
documents, that distinction is not evident. Within some sets of
JSON documents, a portion of the keys is data, but is classified as
metadata during schema extraction because the algorithms do not
take the possibility of keys being part of the data into consideration.
We call this misclassified data dynamic keys. We distinguish them
from the other category of keys called static. Static keys are the
metadata of the documents. Figure 1 shows two sampled JSON
documents adapted from a dataset that contains Amazon products [
        <xref ref-type="bibr" rid="ref12">12</xref>
        ].
The key related is static or metadata because its nested keys are
generally constant across the JSON documents and only
communicate structural information. On the other hand, the key salesRank
is dynamic and part of the data because its nested keys difer from
one document to the next and represent more than just structure.
      </p>
      <p>The distinction between these two categories of keys can be made
by analyzing features that we extract from the JSON key-value pairs.
We parse the JSON documents, extract numerous features, and
use a classification algorithm to separate static from dynamic keys.
Overall, making this distinction within nested JSON documents will
enhance the quality of the discovered schemas by clearly identifying
which keys are data or metadata, as in relational databases.</p>
      <p>The rest of the paper is organized as follows. Section 2
summarizes related work. Section 3 describes our approach to uncover the
hidden data. Section 4 presents the results. Section 6 concludes the
paper and enumerates potential future works.
2</p>
    </sec>
    <sec id="sec-2">
      <title>RELATED WORK</title>
      <p>A JSON schema is a structural representation of a collection of
JSON documents that consists of nested key-value pairs in which
the keys represent the metadata and the values represent the data.</p>
      <p>
        Several researchers developed diferent algorithms to extract the
JSON schema. Their algorithms take a set of JSON documents as
input, but provide diferent outputs. Wang et al. [
        <xref ref-type="bibr" rid="ref13">13</xref>
        ] present a
framework that outputs a graph data structure to store the schema
of each unique document. From this graph, a skeleton model can be
formed to represent a summary of the smallest number of attributes
that capture the core features of a document.
      </p>
      <p>
        Klettke et al. [
        <xref ref-type="bibr" rid="ref8">8</xref>
        ] present a framework that produces a graph data
structure called structure identification graph (SG) that stores the
attributes’ information such as data type and frequency of
occurrence. From an SG, a JSON schema that consists of the attributes
and their data types can be generated.
      </p>
      <p>
        Frozza et al. generate a single schema from JSON documents [
        <xref ref-type="bibr" rid="ref4">4</xref>
        ].
      </p>
      <p>The algorithm parses JSON documents, applies aggregation
techniques to group and order documents with the same keys and
1 { " asin " : " 0 3 0 9 0 6 9 9 6 3 " , " c a t e g o r i e s " : [ [ " Boo ks " ] ] ,
"salesRank": { " B ook s " : 2 1 7 4 2 6 8 } ,
"related": { " a l s o _ b o u g h t " : [ " 0 4 6 5 0 2 2 2 2 7 " ] , " b u y _ a f t e r _ v i e w i n g " : [ " 0 4 6 5 0 2 2 2 2 7 " ] ,
" a l s o _ v i e w e d " : [ " 0 4 6 5 0 2 2 2 2 7 " , " 0 3 0 9 0 6 9 9 6 3 " ] , " b o u g h t _ t o g e t h e r " : [ " 0 3 0 9 0 6 9 9 6 3 " ] } }
2
3
4
5
6 { " asin " : " B 0 0 7 M 6 I M Q O " , " t itl e " : " A d r i e n n e V i t t a d i n i F o o t w e a r Women ' s Vida Flat ... " ,
7 "salesRank": { " S hoe s " : 1 3 9 9 6 1 , " C l o t h i n g " : 5 9 6 2 7 8 } ,
8 "related": { " a l s o _ b o u g h t " : [ " B 0 0 6 W V E S E K " , " B 0 0 7 V M C F L C " ] , " b u y _ a f t e r _ v i e w i n g " : [ " B 0 0 6 W V E S E K " ] ,
9 " a l s o _ v i e w e d " : [ " B 0 0 6 W V E S E K " , " B 0 0 8 8 0 C L H E " ] , " b o u g h t _ t o g e t h e r " : [ " B 0 0 6 W V E S E K " ] } }</p>
      <p>
        Spoth et al. [
        <xref ref-type="bibr" rid="ref11">11</xref>
        ] design an algorithm, Jxplain, to reduce
ambiguity in JSON schemas. They propose a threshold-based model
to distinguish collection-like objects from tuple-like objects, the
equivalent of our dynamic and static keys, respectively. The authors
calculate two features: datatype entropy and key entropy. The first
feature is the entropy of a particular key’s value datatype and the
second feature is the entropy of the number of keys nested under a
particular key. As a result, a key is considered collection-like if it
has a datatype entropy of 0 (all nested values are the same type) or
if its key entropy is greater than 1. Otherwise, the key is considered
a tuple-like object. As we detail in our evaluation, this model is
simpler, but does not outperform our feature-based classifier.
3
      </p>
    </sec>
    <sec id="sec-3">
      <title>METHODOLOGY</title>
      <p>In this section, we describe the methods we analyzed and will use
to address the challenge mentioned above.
3.1</p>
    </sec>
    <sec id="sec-4">
      <title>Static vs. Dynamic Keys</title>
      <p>remove duplicates, and stores all the information about the JSON
documents in a tree-based data structure called Reduced Schema
Unified Structure (RSUS). Here information refers to the objects’
attributes, their datatypes, the elements within and arrays and their
datatypes, and the count of attributes frequencies. From RSUS, a
JSON schema can be generated for each attribute.</p>
      <p>
        Cánovas Izquierdo and Cabot [
        <xref ref-type="bibr" rid="ref5">5</xref>
        ] develop the JSON discoverer
tool that aims to discover and integrate the schemas of JSON
documents. This tool has three main functionalities: (1) simple discovery,
(2) advanced discovery, and (3) composer. Simple discovery finds
the schema of a set of JSON documents and stores it in Unified
Modeling Language (UML) format. Advanced discovery takes the
output of a set of simple discoveries to infer a global schema. Finally, 3.1.1 Intrinsic Characteristics Domain. From our preliminary
analthe composer functionality takes the inferred global schemas as ysis, we observe that dynamic keys are generally less frequent and
input and produces a graph that is composed of the attributes the nested deeper than static keys. This leads us to examine two
intrininferred global schemas have in common. sic features: percentage and nesting level. Percentage is the number
      </p>
      <p>
        Overall, these existing algorithms and tools provide the structure of times a key appears in all documents relative to the number
of the JSON documents, but the semantic information they provide of documents in the dataset. For example, looking at Figure 3, we
is insuficient to understand and analyze those documents. Figure 2 count the number of times the key minimum, belonging to the
shows the result obtained when using the JSONDiscoverer over the JSON path requirements→minimum appears. However, some
two documents in Figure 1. There is no distinction made between documents may not have this specific key. Nesting level is the depth
attributes that are data (Books, Shoes, Clothing) or metadata of each JSON key within a document. We call these features
intrin(also_bought, also_viewed, bought_together, buy_after_viewing). sic because they only communicate each unique key’s information
Based on our knowledge, there are no existing algorithms that can
distinguish static keys from dynamic ones, in other words,
accurately delineate data from metadata in nested JSON documents. A
JSON key is a field name and a JSON path is the route to a JSON
key. For example, in Figure 3, a modified sample of a dataset
containing metadata of games available on the Steam platform [
        <xref ref-type="bibr" rid="ref9">9</xref>
        ],
minimum is a JSON key and requirements → minimum is the
JSON path of that particular key. Our algorithm defines features
that will help correctly separate the data from metadata. These
features come from various domains such as intrinsic characteristics,
central tendency, statistical dispersion, distribution shape,
semantic/contextual similarity, and structural similarity. These domains
were chosen after manually analyzing the JSON documents. We
explain the features from each domain below.
that is independent to the presence of other keys within the JSON
datasets. In Figure 3, the key minimum’s nesting level would be 2.
3.1.2 Central Tendency Domain. All the features defined within
this domain and the two following derive from the number of keys
nested under each key as described below.
      </p>
      <p>We count the number of keys nested under each particular key.</p>
      <p>We notice that dynamic keys have more nested keys than static keys.</p>
      <p>For our data, the mean represents the average of the total number
of keys nested under a particular key across all the documents of a
dataset. In Figure 3, we can see that the dynamic key minimum
has three nested keys (windows, linux, macOS) whereas the static
key windows has two nested keys (processor and memory).
3.1.3 Statistical Dispersion Domain. In this domain, we examine
the variation among the numbers of keys nested under each
particular key. In Figure 1, across the two documents, the number
of nested keys under the dynamic key salesRank varies, while
the number of nested keys under the static key related remains
constant. We examine this stability by calculating range, standard
deviation, and entropy, the most common measures of dispersion.</p>
      <p>The range represents the diference between the largest number of
keys and the smallest number of keys nested under a particular key.</p>
      <p>The standard deviation represents the variation within the number
of keys nested under a particular key. Entropy is the amount of
uncertainty the frequency of the number of keys nested under a
particular key produces.
3.1.4 Distribution Shape Domain. In this domain, we examine the
distribution shape of the number of keys nested under dynamic
keys and static keys across the documents and notice that static keys
have a more normal distribution than dynamic keys. For example,
in Figure 1, the static key related has four nested key in each of
the two documents, while the dynamic key salesRank has one
nested key in the first document and two in the second one. To
examine the shape of this distribution, we calculate skewness and
kurtosis. Whereas skewness measures the asymmetry between the
frequency of the number of keys nested under a particular key,
kurtosis measures the weight of the minimum and maximum of
the frequency of the number of nested keys, relative to the mean.
3.1.5 Semantic and Contextual Similarity Domain. To expand the
distinction between of static and dynamic keys, we calculate three
more features: distinct sub-keys, distinct sub-keys data types, and
average sub-key contextual similarity. These three features are
calculated across all the JSON documents. We choose them because
our preliminary analysis shows that the keys nested under dynamic
keys are usually more unique and related either structurally,
semantically, or contextually than the keys nested under static keys.</p>
      <p>The distinct sub-keys feature shows whether dynamic keys have
more or fewer unique nested keys than static keys. The distinct
subkeys data types feature reveals whether the data types of the keys’
values, nested under dynamic keys, are generally the same or not,
compared to the data types of the keys’ values nested under static
keys. The average sub-key contextual similarity feature indicates
whether the keys nested under dynamic keys are more or less
contextually related than the keys nested under static keys.</p>
      <p>
        Distinct sub-keys represent the number of unique keys nested
under a particular key. We also set an upper bound of 100 for this
1 {"pegi": {
" p e g i _ u r l " : " https :// store . c l o u d f l a r e " ,
" p e g i _ t a g s " : [ " Blood " , " and " , " Gore " ] } ,
"requirements": {
"minimum": {
"windows": {
" p r o c e s s o r " : " 1 GHz Intel ... " ,
" m e m o r y " : " 1024 MB RAM " ,
} ,
"linux": {
" p r o c e s s o r " : " 1 GHz Intel ... " ,
" m e m o r y " : " 1024 MB RAM " ,
} ,
"macOS": {
" p r o c e s s o r " : " SSE2 inst ... " ,
" m e m o r y " : " " } } } }
feature. A key with over 100 distinct sub-keys gives no further
important information and significantly skews the distribution of
the number of nested keys. Distinct sub-keys data types represent
the number of unique keys’ values data types under a particular
key. The last feature we calculate in this domain is the average
pairwise distance of embeddings. A key word embedding is a row
of real-valued numbers in which each point represents a
dimension of the key’s linguistic meaning. We use fastText [
        <xref ref-type="bibr" rid="ref2">2</xref>
        ], a word
embedding model to extract the vectors of each key from a set of
nested keys and determine which ones are contextually related.
      </p>
      <p>
        After transforming the nested keys of a particular key into vectors,
we compare each unique pair of vectors to measure their cosine
distance and compute the average of these distances. We assume
that nested keys part of the same contextual domain will have a
smaller distance and be under a dynamic key. This phenomenon can
be seen in Figure 3, a sample of Steam game dataset [
        <xref ref-type="bibr" rid="ref9">9</xref>
        ]. Static keys
are in red and dynamic keys are in blue. The fastText model shows
that the dynamic key minimum has nested keys (windows, linux,
macOS) with an average cosine distance of 0.5655. This means that
they are in a more similar contextual domain than the static key
windows nested keys (processor and memory) where the cosine
distance between their key embedding vectors is 0.9040.
3.1.6 Structural Similarity Domain. To reduce the possibility that
keys get misclassified, we decide to group keys with the same or
similar nested structures within each JSON dataset. Grouping is
beneficial because it will improve our classification results by
categorizing a set of keys instead of all keys individually. We perform
the grouping by using set similarity search [
        <xref ref-type="bibr" rid="ref1">1</xref>
        ]. It is an algorithm
that measures the similarity of a collection of sets using Jaccard
similarity, which gives a score between 0 and 1.
      </p>
      <p>Given a set of sets of all the nested keys, the algorithm compares
the sets among each other to find which sets have similarities (keys
in common) greater than or equal to a user-defined threshold of 0.7.</p>
      <p>For example, the keys windows, linux, and macOS form a group
because their similarity score is 1, which is greater or equal to the
threshold. A score of 1 means that they have the same nested keys,</p>
      <sec id="sec-4-1">
        <title>Classifier</title>
        <p>Logistic regression
Random forest
SVMs</p>
      </sec>
      <sec id="sec-4-2">
        <title>Intrinsic Feat.</title>
      </sec>
      <sec id="sec-4-3">
        <title>F1-score</title>
        <p>0.0897
0.1106
0.1110</p>
      </sec>
      <sec id="sec-4-4">
        <title>Central Tend. Feat.</title>
      </sec>
      <sec id="sec-4-5">
        <title>F1-score</title>
        <p>0.0906
0.1198
0.1129</p>
      </sec>
      <sec id="sec-4-6">
        <title>Dispersion Feat.</title>
      </sec>
      <sec id="sec-4-7">
        <title>F1-score</title>
        <p>0.0921
0.1447
0.1029
Table 1: Avg, F1-score Results</p>
      </sec>
      <sec id="sec-4-8">
        <title>Dist. Shape Feat.</title>
      </sec>
      <sec id="sec-4-9">
        <title>F1-score</title>
        <p>0.0826
0.1272
0.0880</p>
      </sec>
      <sec id="sec-4-10">
        <title>Add. Feat.</title>
      </sec>
      <sec id="sec-4-11">
        <title>F1-score</title>
        <p>0.4875
0.5616
0.4218</p>
      </sec>
      <sec id="sec-4-12">
        <title>Grouping</title>
        <p>F1-score
0.4875
0.5016
0.4218
which are processor and memory. Once the groups are formed,
we take the average of the percentage and nesting level of the keys
that constitute them and replace all the features of the individual
keys within a group with the values of that group.</p>
      </sec>
    </sec>
    <sec id="sec-5">
      <title>3.2 Data Pre-processing</title>
      <p>
        We collect the above information from various online sources
including Kaggle and GitHub [
        <xref ref-type="bibr" rid="ref3 ref7">3, 7</xref>
        ], just to name a few. Kaggle is a
web-based environment where data scientists can publish data sets
and GitHub is a web platform for software development and version
control. We store the extracted feature information and over-sample
the dynamic keys because our data is unbalanced; there are
disproportionately more static keys than dynamic keys. To balance our
data, we randomly duplicate the records from the minority class
(dynamic keys) to have as many records as the majority class (static
keys). We also normalize our data by subtracting the mean and
dividing by the standard deviation each row variable to obtain a
normal distribution with a mean of zero and a standard deviation
of one. The last step in this data preparation involves defining the
ground truth by manually labelling static and dynamic keys.
      </p>
    </sec>
    <sec id="sec-6">
      <title>3.3 Classification Algorithms</title>
      <p>After feature extraction, we train a binary classifier to determine
whether a key is static or dynamic across all documents. Static and
dynamic are our two categories. For this purpose, we use
crossvalidation to split that data into testing and training sets. We group
keys from the same dataset together. That means that for the
different sets that resulted, each dataset had the opportunity to be
the testing set. We then test three algorithms: 1) logistic regression,
2) random forest, and 3) support vector machines (SVMs), on the
diferent training and testing sets.</p>
    </sec>
    <sec id="sec-7">
      <title>4 EVALUATION</title>
      <p>To analyze our models, we calculate the average F1-score of the
dynamic keys. This value represents the mean of all the F1-scores
obtained from the classification of the dynamic keys from each test
set. We focus on the average F1-score of the dynamic keys because
our datasets are highly skewed toward static keys and we want to
know if our model learns to correctly predict and classify dynamic
keys with unseen data.</p>
      <p>The experimental results can be seen in Table 1. It shows the
F1-score as the features from each domain are added progressively
(the final column displays results using all of the described features).
We obtain low average F1-scores across all three algorithms, but
random forest outperforms the other algorithms at distinguishing
data from metadata. We observe that the average F1-score
sometimes decreases as we add more features from diferent domains.
Currently, we do not know which specific features are detrimental
to the average F1-score. Overall, it is challenging to obtain high
F1-score values because we have disproportionately more static
keys than dynamic keys.</p>
      <p>We also tested Jxplain against our datasets and obtained an
average F1-score of 0.1304, which is significantly lower than the
best results we obtained from the other three algorithms we tested.</p>
    </sec>
    <sec id="sec-8">
      <title>5 CONCLUSION AND FUTURE WORK</title>
      <p>Our goal is to enhance the quality of the discovered schemas of the
JSON documents. For this purpose, we presented a major challenge
that needs to be addressed related to JSON schema discovery:
uncovering hidden data disguised as metadata by distinguishing static
from dynamic keys. We implemented a new algorithm that classifies
the JSON keys as data or metadata by extracting and computing
various features. Our next steps involve gathering more datasets
with dynamic keys, identifying which features are impeding the
average F1-score and reducing the number of misclassified keys.</p>
    </sec>
  </body>
  <back>
    <ref-list>
      <ref id="ref1">
        <mixed-citation>
          [1]
          <string-name>
            <surname>Roberto</surname>
            <given-names>J.</given-names>
          </string-name>
          <string-name>
            <surname>Bayardo</surname>
            , Yiming Ma, and
            <given-names>Ramakrishnan</given-names>
          </string-name>
          <string-name>
            <surname>Srikant</surname>
          </string-name>
          .
          <year>2007</year>
          .
          <article-title>Scaling up All Pairs Similarity Search</article-title>
          . In WWW '
          <volume>07</volume>
          (
          <issue>Banf</issue>
          , Alberta, Canada).
          <source>Association for Computing Machinery</source>
          , New York, NY, USA,
          <fpage>131</fpage>
          -
          <lpage>140</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref2">
        <mixed-citation>
          [2]
          <string-name>
            <given-names>Piotr</given-names>
            <surname>Bojanowski</surname>
          </string-name>
          , Edouard Grave, Armand Joulin, and
          <string-name>
            <given-names>Tomas</given-names>
            <surname>Mikolov</surname>
          </string-name>
          .
          <year>2017</year>
          .
          <article-title>Enriching Word Vectors with Subword Information. Transactions of the Association for Computational Linguistics 5 (</article-title>
          <year>2017</year>
          ),
          <fpage>135</fpage>
          -
          <lpage>146</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref3">
        <mixed-citation>
          [3]
          <string-name>
            <given-names>Justin</given-names>
            <surname>Dorfman</surname>
          </string-name>
          .
          <year>2020</year>
          . GitHub Datasets. https://github.com/jdorfman/awesomejson-datasets.
        </mixed-citation>
      </ref>
      <ref id="ref4">
        <mixed-citation>
          [4]
          <string-name>
            <given-names>A. A.</given-names>
            <surname>Frozza</surname>
          </string-name>
          , R. d. S. Mello, and F. d. S. d. Costa.
          <year>2018</year>
          .
          <article-title>An Approach for Schema Extraction of JSON and Extended JSON Document Collections</article-title>
          .
          <source>In IRI 2018</source>
          (
          <article-title>Salt Lake City</article-title>
          ,
          <string-name>
            <surname>UT</surname>
          </string-name>
          , USA). IEEE, New York, NY, USA,
          <fpage>356</fpage>
          -
          <lpage>363</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref5">
        <mixed-citation>
          [5]
          <string-name>
            <given-names>Javier</given-names>
            <surname>Luis</surname>
          </string-name>
          [Cánovas Izquierdo] and
          <string-name>
            <given-names>Jordi</given-names>
            <surname>Cabot</surname>
          </string-name>
          .
          <year>2016</year>
          .
          <article-title>JSONDiscoverer: Visualizing the schema lurking behind JSON documents</article-title>
          .
          <source>Knowledge-Based Systems</source>
          <volume>103</volume>
          (
          <year>2016</year>
          ),
          <fpage>52</fpage>
          -
          <lpage>55</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref6">
        <mixed-citation>
          [6]
          <string-name>
            <given-names>Jing</given-names>
            <surname>Han</surname>
          </string-name>
          ,
          <string-name>
            <surname>Haihong</surname>
            <given-names>E</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Guan</surname>
            <given-names>Le</given-names>
          </string-name>
          , and
          <string-name>
            <given-names>Jian</given-names>
            <surname>Du</surname>
          </string-name>
          .
          <year>2011</year>
          .
          <article-title>Survey on NoSQL database</article-title>
          .
          <source>In 2011 6th International Conference on PCA. IEEE</source>
          ,
          <string-name>
            <surname>Port</surname>
            <given-names>Elizabeth</given-names>
          </string-name>
          , South Africa,
          <fpage>363</fpage>
          -
          <lpage>366</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref7">
        <mixed-citation>
          [7]
          <string-name>
            <given-names>Kaggle. 2020. Kaggle</given-names>
            <surname>Datasets</surname>
          </string-name>
          . https://www.kaggle.com/datasets.
        </mixed-citation>
      </ref>
      <ref id="ref8">
        <mixed-citation>
          [8]
          <string-name>
            <given-names>Meike</given-names>
            <surname>Klettke</surname>
          </string-name>
          , Uta Störl, and
          <string-name>
            <given-names>Stefanie</given-names>
            <surname>Scherzinger</surname>
          </string-name>
          .
          <year>2015</year>
          .
          <article-title>Schema extraction and structural outlier detection for JSON-based nosql data stores</article-title>
          .
          <source>In BTW 2015</source>
          .
          <article-title>Gesellschaft für Informatik e</article-title>
          .V.,
          <string-name>
            <surname>Bonn</surname>
          </string-name>
          ,
          <fpage>425</fpage>
          -
          <lpage>444</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref9">
        <mixed-citation>
          [9]
          <string-name>
            <given-names>Deepan</given-names>
            <surname>Moorthy</surname>
          </string-name>
          .
          <year>2020</year>
          . Steam Games. https://www.kaggle.com/deepann/80000- steam-games-dataset/version/2.
        </mixed-citation>
      </ref>
      <ref id="ref10">
        <mixed-citation>
          [10]
          <string-name>
            <given-names>Zachary</given-names>
            <surname>Parker</surname>
          </string-name>
          ,
          <string-name>
            <given-names>Scott</given-names>
            <surname>Poe</surname>
          </string-name>
          , and
          <string-name>
            <surname>Susan</surname>
            <given-names>V.</given-names>
          </string-name>
          <string-name>
            <surname>Vrbsky</surname>
          </string-name>
          .
          <year>2013</year>
          .
          <article-title>Comparing NoSQL MongoDB to an SQL DB</article-title>
          . In ACMSE '
          <volume>13</volume>
          (
          <issue>Savannah</issue>
          , Georgia). ACM, New York, NY, USA, Article
          <volume>5</volume>
          , 6 pages.
        </mixed-citation>
      </ref>
      <ref id="ref11">
        <mixed-citation>
          [11]
          <string-name>
            <given-names>William</given-names>
            <surname>Spoth</surname>
          </string-name>
          et al.
          <year>2021</year>
          .
          <article-title>Reducing Ambiguity in Json Schema Discovery</article-title>
          . In SIGMOD/PODS '21 (
          <string-name>
            <surname>Virtual</surname>
            <given-names>Event</given-names>
          </string-name>
          , China). ACM, New York, NY, USA,
          <fpage>1732</fpage>
          -
          <lpage>1744</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref12">
        <mixed-citation>
          [12]
          <string-name>
            <given-names>Mengting</given-names>
            <surname>Wan and Julian McAuley</surname>
          </string-name>
          .
          <year>2016</year>
          .
          <article-title>Modeling Ambiguity, Subjectivity, and Diverging Viewpoints in Opinion Question Answering Systems</article-title>
          . arXiv:
          <volume>1610</volume>
          .08095 [cs.IR]
        </mixed-citation>
      </ref>
      <ref id="ref13">
        <mixed-citation>
          [13]
          <string-name>
            <surname>Lanjun</surname>
            <given-names>Wang</given-names>
          </string-name>
          , Shuo Zhang, Juwei Shi, Limei Jiao, Oktie Hassanzadeh, Jia Zou, and
          <string-name>
            <given-names>Chen</given-names>
            <surname>Wangz</surname>
          </string-name>
          .
          <year>2015</year>
          .
          <article-title>Schema Management for Document Stores</article-title>
          .
          <source>Proc. VLDB Endow</source>
          .
          <volume>8</volume>
          ,
          <issue>9</issue>
          (May
          <year>2015</year>
          ),
          <fpage>922</fpage>
          -
          <lpage>933</lpage>
          .
        </mixed-citation>
      </ref>
    </ref-list>
  </back>
</article>