discovering implicit schemas in json data
DESCRIPTION
Proposing a discovery process to infer the implicit schema of a set of JSON documentsTRANSCRIPT
Discovering Implicit Schemas in JSON Data
Javier Luis Cánovas Izquierdo, Jordi Cabot
{javier.canovas,jordi.cabot}@inria.fr
ICWE ConferenceJuly 2013
APIs everywhere
APIs everywhere
flickr/FortMeade
Format War
flickr/FortMeade
Format War
XML vs. JSON
2009 2010 2011 2012 20130%
10%
20%
30%
40%
50%
60%
70%
80%
90%
100%
JSON-based API XML-based API
Source: ProgrammableWeb.com
XML vs. JSON
JSON
flickr/Eleaf
Also called JavaScript Object Notation, is a text-based open standard designed for human-readable data interchange. It is derived from the JavaScript scripting language for representing simple data structures and associative arrays, called objects. Despite its relationship to JavaScript, it is language-independent, with parsers available for many languages.
JSON (/ˈdʒeɪsɒn/ jay-sawn, /ˈdʒeɪsən/ jay-sun)
Source: Wikipedia
Also called JavaScript Object Notation, is a text-based open standard designed for human-readable data interchange. It is derived from the JavaScript scripting language for representing simple data structures and associative arrays, called objects. Despite its relationship to JavaScript, it is language-independent, with parsers available for many languages.
JSON (/ˈdʒeɪsɒn/ jay-sawn, /ˈdʒeɪsən/ jay-sun)
… and it is schemaless
flickr/jean-louis zimmermann
Example
flickr/Mads Boedker Our proposal
Discovery of schemas in JSON
Creation Refinement
Creation Refinement
C1 C2 C3 C4 C5
R1 R2 R3
Creation Refinement
Creation Refinement
M1 M2 M3 M4
Discovering dependencies
Implementation
Not enough…
• Allowing developers to enrich the partial schemas• Ideas from database normalization theory and XML-based approaches
Improve discovery process
• Some metrics: effectiveness, coverage, etc.
Evaluate the discovery process
• Automatize the generation of documentation• Identifying use patterns in the JSON-based API
Promote JSON-based APIs
• Generation of mash-ups• …others?
Additional uses
Check it out!https://code.google.com/a/eclipselabs.org/p/json-
discoverer/Except where otherwise noted, content on this presentation is licensed under a Creative Commons Attribution 3.0 License.
Do you wanna try?