Discovering Implicit Schemas in JSON Data

29
Discovering Implicit Schemas in JSON Data Javier Luis Cánovas Izquierdo, Jordi Cabot {javier.canovas,jordi.cabot}@inria.fr ICWE Conference July 2013

description

Proposing a discovery process to infer the implicit schema of a set of JSON documents

Transcript of Discovering Implicit Schemas in JSON Data

Page 1: Discovering Implicit Schemas in JSON Data

Discovering Implicit Schemas in JSON Data

Javier Luis Cánovas Izquierdo, Jordi Cabot

{javier.canovas,jordi.cabot}@inria.fr

ICWE ConferenceJuly 2013

Page 2: Discovering Implicit Schemas in JSON Data

APIs everywhere

Page 3: Discovering Implicit Schemas in JSON Data

APIs everywhere

Page 4: Discovering Implicit Schemas in JSON Data

flickr/FortMeade

Format War

Page 5: Discovering Implicit Schemas in JSON Data

flickr/FortMeade

Format War

XML vs. JSON

Page 6: Discovering Implicit Schemas in JSON Data

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

Page 7: Discovering Implicit Schemas in JSON Data

JSON

flickr/Eleaf

Page 8: Discovering Implicit Schemas in JSON Data

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

Page 9: Discovering Implicit Schemas in JSON Data

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

Page 10: Discovering Implicit Schemas in JSON Data

flickr/jean-louis zimmermann

Example

Page 11: Discovering Implicit Schemas in JSON Data
Page 12: Discovering Implicit Schemas in JSON Data
Page 13: Discovering Implicit Schemas in JSON Data
Page 14: Discovering Implicit Schemas in JSON Data
Page 15: Discovering Implicit Schemas in JSON Data
Page 16: Discovering Implicit Schemas in JSON Data
Page 17: Discovering Implicit Schemas in JSON Data

flickr/Mads Boedker Our proposal

Page 18: Discovering Implicit Schemas in JSON Data

Discovery of schemas in JSON

Page 19: Discovering Implicit Schemas in JSON Data
Page 20: Discovering Implicit Schemas in JSON Data
Page 21: Discovering Implicit Schemas in JSON Data

Creation Refinement

Page 22: Discovering Implicit Schemas in JSON Data

Creation Refinement

C1 C2 C3 C4 C5

Page 23: Discovering Implicit Schemas in JSON Data

R1 R2 R3

Creation Refinement

Page 24: Discovering Implicit Schemas in JSON Data

Creation Refinement

Page 25: Discovering Implicit Schemas in JSON Data

M1 M2 M3 M4

Page 26: Discovering Implicit Schemas in JSON Data

Discovering dependencies

Page 27: Discovering Implicit Schemas in JSON Data

Implementation

Page 28: Discovering Implicit Schemas in JSON Data

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

Page 29: Discovering Implicit Schemas in JSON Data

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?