SlideShare a Scribd company logo
1 of 29
Discovering Implicit
Schemas in JSON Data
Javier Luis Cánovas Izquierdo, Jordi Cabot
{javier.canovas,jordi.cabot}@inria.fr
ICWE Conference
July 2013
APIs everywhere
APIs everywhere
flickr/FortMeade
Format War
flickr/FortMeade
Format War
XML vs. JSON
0%
10%
20%
30%
40%
50%
60%
70%
80%
90%
100%
2009 2010 2011 2012 2013
JSON-based API XML-based API
Source: ProgrammableWeb.com
XML vs. 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?

More Related Content

Similar to Discovering Implicit Schemas in JSON Data

Similar to Discovering Implicit Schemas in JSON Data (20)

Json
JsonJson
Json
 
JSON Injection
JSON InjectionJSON Injection
JSON Injection
 
Json
JsonJson
Json
 
OBA: An Ontology-Based Framework for Creating REST APIs for Knowledge Graphs
OBA: An Ontology-Based Framework for Creating REST APIs for Knowledge GraphsOBA: An Ontology-Based Framework for Creating REST APIs for Knowledge Graphs
OBA: An Ontology-Based Framework for Creating REST APIs for Knowledge Graphs
 
Json
JsonJson
Json
 
J s o n
J s o nJ s o n
J s o n
 
Java and JSON - UJUG - March 19 2009
Java and JSON - UJUG - March 19 2009Java and JSON - UJUG - March 19 2009
Java and JSON - UJUG - March 19 2009
 
RIA Data and Security, 2007
RIA Data and Security, 2007RIA Data and Security, 2007
RIA Data and Security, 2007
 
X Som Graduation Presentation
X Som   Graduation PresentationX Som   Graduation Presentation
X Som Graduation Presentation
 
Synchronizing Core Data With Rails
Synchronizing Core Data With RailsSynchronizing Core Data With Rails
Synchronizing Core Data With Rails
 
JSON Application
JSON ApplicationJSON Application
JSON Application
 
JSON PRETTIFY.pdf
JSON PRETTIFY.pdfJSON PRETTIFY.pdf
JSON PRETTIFY.pdf
 
Js slideshare
Js   slideshareJs   slideshare
Js slideshare
 
Top JSON Interview Questions for Freshers
Top JSON Interview Questions for FreshersTop JSON Interview Questions for Freshers
Top JSON Interview Questions for Freshers
 
Java JSON Parser Comparison
Java JSON Parser ComparisonJava JSON Parser Comparison
Java JSON Parser Comparison
 
Difference between xml and json
Difference between xml and jsonDifference between xml and json
Difference between xml and json
 
JSON
JSONJSON
JSON
 
javascript
javascript javascript
javascript
 
Easy JSON Data Manipulation in Spark
Easy JSON Data Manipulation in SparkEasy JSON Data Manipulation in Spark
Easy JSON Data Manipulation in Spark
 
eureka09
eureka09eureka09
eureka09
 

More from Javier Canovas

On the Analysis of Non-Coding Roles in Open Source Development
On the Analysis of Non-Coding Roles in Open Source DevelopmentOn the Analysis of Non-Coding Roles in Open Source Development
On the Analysis of Non-Coding Roles in Open Source DevelopmentJavier Canovas
 
Open Source Software Governance Guide: Developing a Matrix of Leading Questio...
Open Source Software Governance Guide: Developing a Matrix of Leading Questio...Open Source Software Governance Guide: Developing a Matrix of Leading Questio...
Open Source Software Governance Guide: Developing a Matrix of Leading Questio...Javier Canovas
 
A Model-based Chatbot Generation Approach to Converse with Open Data Sources
A Model-based Chatbot Generation Approach to Converse with Open Data SourcesA Model-based Chatbot Generation Approach to Converse with Open Data Sources
A Model-based Chatbot Generation Approach to Converse with Open Data SourcesJavier Canovas
 
Chatbots to Democratize the Access to Information and Internet Services
Chatbots to Democratize the Access to Information and Internet ServicesChatbots to Democratize the Access to Information and Internet Services
Chatbots to Democratize the Access to Information and Internet ServicesJavier Canovas
 
Analysis and Modeling of the Governance in General Programming Languages
Analysis and Modeling of the Governance in General Programming LanguagesAnalysis and Modeling of the Governance in General Programming Languages
Analysis and Modeling of the Governance in General Programming LanguagesJavier Canovas
 
Automatic Generation of Test Cases for REST APIs: a Specification-Based Approach
Automatic Generation of Test Cases for REST APIs: a Specification-Based ApproachAutomatic Generation of Test Cases for REST APIs: a Specification-Based Approach
Automatic Generation of Test Cases for REST APIs: a Specification-Based ApproachJavier Canovas
 
A UML Profile for Privacy Enforcement
A UML Profile for Privacy EnforcementA UML Profile for Privacy Enforcement
A UML Profile for Privacy EnforcementJavier Canovas
 
The Role of Foundations in Open Source Projects
The Role of Foundations in Open Source ProjectsThe Role of Foundations in Open Source Projects
The Role of Foundations in Open Source ProjectsJavier Canovas
 
An Empirical Study on the Maturity of the Eclipse Modeling Ecosystem
An Empirical Study on the Maturity of the Eclipse Modeling EcosystemAn Empirical Study on the Maturity of the Eclipse Modeling Ecosystem
An Empirical Study on the Maturity of the Eclipse Modeling EcosystemJavier Canovas
 
Example-driven Web API Specification Discovery
Example-driven Web API Specification DiscoveryExample-driven Web API Specification Discovery
Example-driven Web API Specification DiscoveryJavier Canovas
 
Software Modernization Revisited: Challenges and Prospects
Software Modernization Revisited:Challenges and ProspectsSoftware Modernization Revisited:Challenges and Prospects
Software Modernization Revisited: Challenges and ProspectsJavier Canovas
 
Findings from GitHub. Methods, Datasets and Limitations
Findings from GitHub. Methods, Datasets and LimitationsFindings from GitHub. Methods, Datasets and Limitations
Findings from GitHub. Methods, Datasets and LimitationsJavier Canovas
 
Enabling the Definition and Enforcement of Governance Rules in Open Source Sy...
Enabling the Definition and Enforcement of Governance Rules in Open Source Sy...Enabling the Definition and Enforcement of Governance Rules in Open Source Sy...
Enabling the Definition and Enforcement of Governance Rules in Open Source Sy...Javier Canovas
 
Exploring the Use of Labels to Categorize Issues in Open-Source Software Pro...
Exploring the Use of Labels to Categorize Issues in Open-Source Software Pro...Exploring the Use of Labels to Categorize Issues in Open-Source Software Pro...
Exploring the Use of Labels to Categorize Issues in Open-Source Software Pro...Javier Canovas
 
Retos Actuales en el Desarrollo de Lenguajes Específicos del Dominio
Retos Actuales en el Desarrollo de Lenguajes Específicos del DominioRetos Actuales en el Desarrollo de Lenguajes Específicos del Dominio
Retos Actuales en el Desarrollo de Lenguajes Específicos del DominioJavier Canovas
 
Enabling the Collaborative Definition of DSMLs
Enabling the Collaborative Definition of DSMLsEnabling the Collaborative Definition of DSMLs
Enabling the Collaborative Definition of DSMLsJavier Canovas
 
Domain-Specific Languages
Domain-Specific LanguagesDomain-Specific Languages
Domain-Specific LanguagesJavier Canovas
 
Modernization in Eclipse
Modernization in EclipseModernization in Eclipse
Modernization in EclipseJavier Canovas
 
Software Modernization
Software ModernizationSoftware Modernization
Software ModernizationJavier Canovas
 
Collaboro - Creación Colaborativa de Lenguajes Específicos del Dominio
Collaboro - Creación Colaborativa de Lenguajes Específicos del DominioCollaboro - Creación Colaborativa de Lenguajes Específicos del Dominio
Collaboro - Creación Colaborativa de Lenguajes Específicos del DominioJavier Canovas
 

More from Javier Canovas (20)

On the Analysis of Non-Coding Roles in Open Source Development
On the Analysis of Non-Coding Roles in Open Source DevelopmentOn the Analysis of Non-Coding Roles in Open Source Development
On the Analysis of Non-Coding Roles in Open Source Development
 
Open Source Software Governance Guide: Developing a Matrix of Leading Questio...
Open Source Software Governance Guide: Developing a Matrix of Leading Questio...Open Source Software Governance Guide: Developing a Matrix of Leading Questio...
Open Source Software Governance Guide: Developing a Matrix of Leading Questio...
 
A Model-based Chatbot Generation Approach to Converse with Open Data Sources
A Model-based Chatbot Generation Approach to Converse with Open Data SourcesA Model-based Chatbot Generation Approach to Converse with Open Data Sources
A Model-based Chatbot Generation Approach to Converse with Open Data Sources
 
Chatbots to Democratize the Access to Information and Internet Services
Chatbots to Democratize the Access to Information and Internet ServicesChatbots to Democratize the Access to Information and Internet Services
Chatbots to Democratize the Access to Information and Internet Services
 
Analysis and Modeling of the Governance in General Programming Languages
Analysis and Modeling of the Governance in General Programming LanguagesAnalysis and Modeling of the Governance in General Programming Languages
Analysis and Modeling of the Governance in General Programming Languages
 
Automatic Generation of Test Cases for REST APIs: a Specification-Based Approach
Automatic Generation of Test Cases for REST APIs: a Specification-Based ApproachAutomatic Generation of Test Cases for REST APIs: a Specification-Based Approach
Automatic Generation of Test Cases for REST APIs: a Specification-Based Approach
 
A UML Profile for Privacy Enforcement
A UML Profile for Privacy EnforcementA UML Profile for Privacy Enforcement
A UML Profile for Privacy Enforcement
 
The Role of Foundations in Open Source Projects
The Role of Foundations in Open Source ProjectsThe Role of Foundations in Open Source Projects
The Role of Foundations in Open Source Projects
 
An Empirical Study on the Maturity of the Eclipse Modeling Ecosystem
An Empirical Study on the Maturity of the Eclipse Modeling EcosystemAn Empirical Study on the Maturity of the Eclipse Modeling Ecosystem
An Empirical Study on the Maturity of the Eclipse Modeling Ecosystem
 
Example-driven Web API Specification Discovery
Example-driven Web API Specification DiscoveryExample-driven Web API Specification Discovery
Example-driven Web API Specification Discovery
 
Software Modernization Revisited: Challenges and Prospects
Software Modernization Revisited:Challenges and ProspectsSoftware Modernization Revisited:Challenges and Prospects
Software Modernization Revisited: Challenges and Prospects
 
Findings from GitHub. Methods, Datasets and Limitations
Findings from GitHub. Methods, Datasets and LimitationsFindings from GitHub. Methods, Datasets and Limitations
Findings from GitHub. Methods, Datasets and Limitations
 
Enabling the Definition and Enforcement of Governance Rules in Open Source Sy...
Enabling the Definition and Enforcement of Governance Rules in Open Source Sy...Enabling the Definition and Enforcement of Governance Rules in Open Source Sy...
Enabling the Definition and Enforcement of Governance Rules in Open Source Sy...
 
Exploring the Use of Labels to Categorize Issues in Open-Source Software Pro...
Exploring the Use of Labels to Categorize Issues in Open-Source Software Pro...Exploring the Use of Labels to Categorize Issues in Open-Source Software Pro...
Exploring the Use of Labels to Categorize Issues in Open-Source Software Pro...
 
Retos Actuales en el Desarrollo de Lenguajes Específicos del Dominio
Retos Actuales en el Desarrollo de Lenguajes Específicos del DominioRetos Actuales en el Desarrollo de Lenguajes Específicos del Dominio
Retos Actuales en el Desarrollo de Lenguajes Específicos del Dominio
 
Enabling the Collaborative Definition of DSMLs
Enabling the Collaborative Definition of DSMLsEnabling the Collaborative Definition of DSMLs
Enabling the Collaborative Definition of DSMLs
 
Domain-Specific Languages
Domain-Specific LanguagesDomain-Specific Languages
Domain-Specific Languages
 
Modernization in Eclipse
Modernization in EclipseModernization in Eclipse
Modernization in Eclipse
 
Software Modernization
Software ModernizationSoftware Modernization
Software Modernization
 
Collaboro - Creación Colaborativa de Lenguajes Específicos del Dominio
Collaboro - Creación Colaborativa de Lenguajes Específicos del DominioCollaboro - Creación Colaborativa de Lenguajes Específicos del Dominio
Collaboro - Creación Colaborativa de Lenguajes Específicos del Dominio
 

Recently uploaded

Install Stable Diffusion in windows machine
Install Stable Diffusion in windows machineInstall Stable Diffusion in windows machine
Install Stable Diffusion in windows machinePadma Pradeep
 
"Federated learning: out of reach no matter how close",Oleksandr Lapshyn
"Federated learning: out of reach no matter how close",Oleksandr Lapshyn"Federated learning: out of reach no matter how close",Oleksandr Lapshyn
"Federated learning: out of reach no matter how close",Oleksandr LapshynFwdays
 
AI as an Interface for Commercial Buildings
AI as an Interface for Commercial BuildingsAI as an Interface for Commercial Buildings
AI as an Interface for Commercial BuildingsMemoori
 
Story boards and shot lists for my a level piece
Story boards and shot lists for my a level pieceStory boards and shot lists for my a level piece
Story boards and shot lists for my a level piececharlottematthew16
 
The Future of Software Development - Devin AI Innovative Approach.pdf
The Future of Software Development - Devin AI Innovative Approach.pdfThe Future of Software Development - Devin AI Innovative Approach.pdf
The Future of Software Development - Devin AI Innovative Approach.pdfSeasiaInfotech2
 
Human Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR SystemsHuman Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR SystemsMark Billinghurst
 
Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!Commit University
 
My Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationMy Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationRidwan Fadjar
 
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024BookNet Canada
 
Artificial intelligence in cctv survelliance.pptx
Artificial intelligence in cctv survelliance.pptxArtificial intelligence in cctv survelliance.pptx
Artificial intelligence in cctv survelliance.pptxhariprasad279825
 
Vertex AI Gemini Prompt Engineering Tips
Vertex AI Gemini Prompt Engineering TipsVertex AI Gemini Prompt Engineering Tips
Vertex AI Gemini Prompt Engineering TipsMiki Katsuragi
 
Unleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding ClubUnleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding ClubKalema Edgar
 
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024BookNet Canada
 
What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024Stephanie Beckett
 
My INSURER PTE LTD - Insurtech Innovation Award 2024
My INSURER PTE LTD - Insurtech Innovation Award 2024My INSURER PTE LTD - Insurtech Innovation Award 2024
My INSURER PTE LTD - Insurtech Innovation Award 2024The Digital Insurer
 
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek SchlawackFwdays
 
Unraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdfUnraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdfAlex Barbosa Coqueiro
 
Commit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easyCommit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easyAlfredo García Lavilla
 
CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):comworks
 

Recently uploaded (20)

Install Stable Diffusion in windows machine
Install Stable Diffusion in windows machineInstall Stable Diffusion in windows machine
Install Stable Diffusion in windows machine
 
"Federated learning: out of reach no matter how close",Oleksandr Lapshyn
"Federated learning: out of reach no matter how close",Oleksandr Lapshyn"Federated learning: out of reach no matter how close",Oleksandr Lapshyn
"Federated learning: out of reach no matter how close",Oleksandr Lapshyn
 
AI as an Interface for Commercial Buildings
AI as an Interface for Commercial BuildingsAI as an Interface for Commercial Buildings
AI as an Interface for Commercial Buildings
 
Story boards and shot lists for my a level piece
Story boards and shot lists for my a level pieceStory boards and shot lists for my a level piece
Story boards and shot lists for my a level piece
 
The Future of Software Development - Devin AI Innovative Approach.pdf
The Future of Software Development - Devin AI Innovative Approach.pdfThe Future of Software Development - Devin AI Innovative Approach.pdf
The Future of Software Development - Devin AI Innovative Approach.pdf
 
Human Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR SystemsHuman Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR Systems
 
Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!
 
My Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationMy Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 Presentation
 
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
 
Artificial intelligence in cctv survelliance.pptx
Artificial intelligence in cctv survelliance.pptxArtificial intelligence in cctv survelliance.pptx
Artificial intelligence in cctv survelliance.pptx
 
Vertex AI Gemini Prompt Engineering Tips
Vertex AI Gemini Prompt Engineering TipsVertex AI Gemini Prompt Engineering Tips
Vertex AI Gemini Prompt Engineering Tips
 
E-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptx
E-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptxE-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptx
E-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptx
 
Unleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding ClubUnleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding Club
 
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
 
What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024
 
My INSURER PTE LTD - Insurtech Innovation Award 2024
My INSURER PTE LTD - Insurtech Innovation Award 2024My INSURER PTE LTD - Insurtech Innovation Award 2024
My INSURER PTE LTD - Insurtech Innovation Award 2024
 
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
 
Unraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdfUnraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdf
 
Commit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easyCommit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easy
 
CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):
 

Discovering Implicit Schemas in JSON Data

Editor's Notes

  1. apis everywhere
  2. apis everywhere
  3. http://blog.programmableweb.com/2011/05/25/1-in-5-apis-say-bye-xml/
  4. http://blog.programmableweb.com/2011/05/25/1-in-5-apis-say-bye-xml/
  5. http://blog.programmableweb.com/2011/05/25/1-in-5-apis-say-bye-xml/Change range
  6. Real experience
  7. Possible structure
  8. http://blog.programmableweb.com/2011/05/25/1-in-5-apis-say-bye-xml/
  9. Emphasis on proposal
  10. Grammar-model world
  11. Importance of this step
  12. Importance of this step
  13. Importance of this step
  14. Importance of this step