SlideShare a Scribd company logo
1 of 30
Download to read offline
Introduction Architecture of rsdmx Using rsdmx Conclusions & Perspectives
rsdmx - Tools for reading SDMX data and
metadata documents in RR
Emmanuel Blondel
emmanuel.blondel1@gmail.com
CEO - International Consultant
September 27, 2015
E. Blondel rsdmx - Tools for reading SDMX data and metadata documents i
Introduction Architecture of rsdmx Using rsdmx Conclusions & Perspectives
Outline
1 Introduction
2 Architecture of rsdmx
3 Using rsdmx
4 Conclusions & Perspectives
E. Blondel rsdmx - Tools for reading SDMX data and metadata documents i
Introduction Architecture of rsdmx Using rsdmx Conclusions & Perspectives
SDMX
Statistical Data and Metadata Exchange (SDMX)
Joint initiative created in 2001 by international & regional
institutions 1
Promote and develop standards and guidelines for the
exchange and sharing of statistical data and metadata
Definition of an abstract information model
Development of standard formats
Design of web-services architectures and tools
Continuous process of improving the exchange of statistical
data & metadata
an evolving set of specifications: SDMX 1.0, 2.0, 2.1
a variety of formats: SDMX-ML, SDMX-EDI, SDMX-JSON
a variety of service architectures: SOAP, REST
Main SDMX format used across institutions: SDMX-ML
1
Bank for International Settlements (BIS), European Central Bank (ECB), Statistical Office of the European
Union (EUROSTAT), International Monetary Fund (IMF), Organization for Economic Co-operation and
Development (OECD),United Nations (UN) and World Bank
E. Blondel rsdmx - Tools for reading SDMX data and metadata documents i
Introduction Architecture of rsdmx Using rsdmx Conclusions & Perspectives
Motivation
Conciliating SDMX and R
Need of Interoperability between statistical systems, formats
and tools
Need to co-analyse and process statistical data
from a variety of domains (demography, socio-economics,
health, environment, agriculture, fishery, etc.)
from scattered data providers (national, regional &
international institutions)
by a growing range of actors (e.g. government institutions,
statistical institutes, non-profit organizations, universities,
research centers, companies)
Fundamental and growing role of RR as plateform for
statistical computing
...and the need of tools to facilitate reading of SDMX data
and metadata in RR
E. Blondel rsdmx - Tools for reading SDMX data and metadata documents i
Introduction Architecture of rsdmx Using rsdmx Conclusions & Perspectives
rsdmx
Introduction
First initiative to read SDMX in R made available to the R
community
Set of tools to read SDMX-ML data and metadata documents
E. Blondel rsdmx - Tools for reading SDMX data and metadata documents i
Introduction Architecture of rsdmx Using rsdmx Conclusions & Perspectives
rsdmx
Introduction
Generic SDMX abstraction library for R
Read SDMX documents in a flexible way:
Support for SDMX-ML 1.0, 2.0 and 2.1 standard formats
Support for remote or local sources,
No restriction to the SDMX web-services standard
specifications (for remote sources)
Variety of SDMX documents:
Data (generic, compact, structure-specific, etc.)
Metadata (Data structure definition - DSD, Codelists,
Concepts, etc.)
E. Blondel rsdmx - Tools for reading SDMX data and metadata documents i
Introduction Architecture of rsdmx Using rsdmx Conclusions & Perspectives
rsdmx
Introduction
a single readSDMX
function, with a large
bandwidth of use:
”raw”approach (read
from url or file)
”helping”approach (read
from a list of well-known
service providers, with
no need to specify the
entire request)
a set of generic methods to
convert SDMX data into
tabular data (data.frame)
E. Blondel rsdmx - Tools for reading SDMX data and metadata documents i
Introduction Architecture of rsdmx Using rsdmx Conclusions & Perspectives
Outline
1 Introduction
2 Architecture of rsdmx
3 Using rsdmx
4 Conclusions & Perspectives
E. Blondel rsdmx - Tools for reading SDMX data and metadata documents i
Introduction Architecture of rsdmx Using rsdmx Conclusions & Perspectives
rsdmx
Architecture - Object-oriented model
SDMX model represented in RR with S4 classes and methods
In S4 modelling, a class is made of slots (properties)
the general structure of SDMX-ML document is represented
with an SDMX abstract class
each SDMX-ML document has a corresponding RR SDMX*
class that extends the SDMX class
SDMX RR representation
Class "SDMX" [package "rsdmx"]
Slots:
Name: xmlObj schema header
Class: XMLInternalDocument SDMXSchema SDMXHeader
Known Subclasses:
"SDMXGenericData", "SDMXCompactData", "SDMXMessageGroup",
"SDMXConcepts", "SDMXCodelists", "SDMXDataStructures",
"SDMXDataStructureDefinition"
E. Blondel rsdmx - Tools for reading SDMX data and metadata documents i
Introduction Architecture of rsdmx Using rsdmx Conclusions & Perspectives
rsdmx
Architecture - Supported SDMX-ML documents
Structure types, i.e. the elements that define the data
structure, including:
Concepts: characteristics of a statistical dataset (dimensions,
attributes, measures)
Codelists: description of a dimension with a list of codes and
labels
Datastructures: description of the dataset structure
Data Structure Definitions (DSD): complete description
of a data structure including the 3 previous types
Dataset types:
GenericData: generic SDMX data format
CompactData: compacted data format
StructureSpecificData: structure specific data format
UtilityData: utility data format
MessageGroup: specific message type developed to enable the
exchange of several data or metadata messages of a single type
in a unique SDMX-ML document. Currently enabled for
datasets only. E. Blondel rsdmx - Tools for reading SDMX data and metadata documents i
Introduction Architecture of rsdmx Using rsdmx Conclusions & Perspectives
rsdmx
Architecture - Object-oriented model (SDMX Concepts)
an SDMXConcepts object handles concepts either through
concepts or conceptSchemes (depending on the SDMX
version)
each concept is modeled with the SDMXConcept class
E. Blondel rsdmx - Tools for reading SDMX data and metadata documents i
Introduction Architecture of rsdmx Using rsdmx Conclusions & Perspectives
rsdmx
Architecture - Object-oriented model (SDMX Codelists)
an SDMXCodelists object handles one or more codelists
each codelist is modeled with the SDMXCodelist class. It
includes a list of SDMXCode
E. Blondel rsdmx - Tools for reading SDMX data and metadata documents i
Introduction Architecture of rsdmx Using rsdmx Conclusions & Perspectives
rsdmx
Architecture - Object-oriented model (SDMX Data structures / Key Families)
an SDMXDataStructures object handles one or more data
structures (or key families)
each data structure is modeled with the SDMXDataStructure
class. It includes a SDMXComponents object handling the
dimensions, attributes, time dimension and measure
E. Blondel rsdmx - Tools for reading SDMX data and metadata documents i
Introduction Architecture of rsdmx Using rsdmx Conclusions & Perspectives
rsdmx
Architecture - Object-oriented model (SDMX Data structure Definition - DSD)
an SDMXDataStructures object handles concepts, codelists and
data structures.
E. Blondel rsdmx - Tools for reading SDMX data and metadata documents i
Introduction Architecture of rsdmx Using rsdmx Conclusions & Perspectives
rsdmx
Architecture - readSDMX end-user function
readSDMX is the main function of rsdmx package. The function
will do the following:
download the SDMX-ML document
determine the SDMX-ML message type and instantiate the
corresponding RR SDMX* object
in case of Structure message types, parse completely the
document into a S4 sub-model specific to the message type
E. Blondel rsdmx - Tools for reading SDMX data and metadata documents i
Introduction Architecture of rsdmx Using rsdmx Conclusions & Perspectives
rsdmx
Architecture - XML Parsing technics & strategies
2 different parsing technics:
Initial and current technic: using XPath
requires loading the XML document tree in RR
can cause R memory issues with large SDMX-ML documents
Alternative approach (in factory): using the Simple API for
XML (SAX)
does not require loading the XML document tree in RR
avoids R memory issues with large SDMX-ML documents
capacity to parse remote or local SDMX-ML files
2 different parsing strategies:
for Structure types: when instantiating the SDMX* object
(done by readSDMX)
for Dataset types: when coercing the SDMX* object to a
data.frame (done by as.data.frame)
E. Blondel rsdmx - Tools for reading SDMX data and metadata documents i
Introduction Architecture of rsdmx Using rsdmx Conclusions & Perspectives
Outline
1 Introduction
2 Architecture of rsdmx
3 Using rsdmx
4 Conclusions & Perspectives
E. Blondel rsdmx - Tools for reading SDMX data and metadata documents i
Introduction Architecture of rsdmx Using rsdmx Conclusions & Perspectives
rsdmx
Usage - Installing rsdmx
rsdmx can be installed:
from CRAN
R> install.packages("rsdmx")
from Github (requires devtools package)
R> require(devtools)
R> install_github("opensdmx/rsdmx")
Load rsdmx in R using:
R> require(rsdmx)
E. Blondel rsdmx - Tools for reading SDMX data and metadata documents i
Introduction Architecture of rsdmx Using rsdmx Conclusions & Perspectives
rsdmx
Usage - datasets
Read a SDMX generic dataset in RR using the raw approach.
R> url <- paste("http://data.fao.org/sdmx/repository/data/CROP_PRODUCTION/",
".156.5312../FAO?startPeriod=2008&endPeriod=2008", sep="")
R> sdmxObj <- readSDMX(url)
R> class(sdmxObj)
[1] "SDMXGenericData"
attr(,"package")
[1] "rsdmx"
Convert the SDMXGenericData into tabular data (data.frame)
R> myData <- as.data.frame(sdmxObj)
R> head(myData)
FREQ REF_AREA INDICATOR COMMODITY DOMAIN UNITS UNIT_MULTIPLIER obsTime obsValue OBS_STATUS
1 YEAR 156 5312 515 Q No 1000 2008 8832 <NA>
2 YEAR 156 5312 526 Q No 1000 2008 450 E
3 YEAR 156 5312 367 Q No 1000 2008 700 E
4 YEAR 156 5312 572 Q No 1000 2008 4000 E
5 YEAR 156 5312 44 Q No 1000 2008 67435 <NA>
6 YEAR 156 5312 414 Q No 1000 2008 730 E
E. Blondel rsdmx - Tools for reading SDMX data and metadata documents i
Introduction Architecture of rsdmx Using rsdmx Conclusions & Perspectives
rsdmx
Usage - concepts
Read a SDMX concepts document in RR
R> url <- paste("http://data.fao.org/sdmx/registry/conceptscheme/FAO/",
"ALL/LATEST/?detail=full&references=none&version=2.1", sep="")
R> sdmxObj <- readSDMX(url)
R> class(sdmxObj)
[1] "SDMXConcepts"
attr(,"package")
[1] "rsdmx"
Convert the SDMXConcepts into tabular data (data.frame)
R> concepts <- as.data.frame(sdmxObj)
R> head(concepts[,c("id","en")])
id en
1 COMMODITY COMMODITY
2 INDICATOR INDICATOR
3 REF_AREA REF_AREA
4 DOMAIN DOMAIN
5 UNIT_MEASURE UNIT_MEASURE
6 FREQ FREQ
7 FAO_MAJOR_AREA FAO Major Area
8 UN_COUNTRY UN Country
9 ENVIRONMENT Environment
10 SPECIES ASFIS Species Alpha 3 Code
11 OBS_VALUE OBS_VALUE
12 OBS_STATUS OBS_STATUS
13 UNIT UnitE. Blondel rsdmx - Tools for reading SDMX data and metadata documents i
Introduction Architecture of rsdmx Using rsdmx Conclusions & Perspectives
rsdmx
Usage - codelists
Read a SDMX codelists document in RR
R> clUrl <- paste("http://data.fao.org/sdmx/registry/codelist/FAO/",
"CL_FAO_MAJOR_AREA/0.1", sep="")
R> clObj <- readSDMX(clUrl)
R> class(clObj)
[1] "SDMXCodelists"
attr(,"package")
[1] "rsdmx"
Convert the SDMXCodelists into tabular data (data.frame)
R> codelist <- as.data.frame(clObj)
R> head(codelist[,c("id", "label.fr", "label.es")])
id label.fr label.es
1 01 Afrique - Eaux continentales ´Africa - Aguas continentales
2 02 Am´erique du Nord - Eaux continentales Am´erica del Norte - Aguas continentales
3 03 Am´erique du Sud - Eaux continentales Am´erica del Sur - Aguas continentales
4 04 Asie - Eaux continentales Asia - Aguas continentales
5 05 Europe - Eaux continentales Europa - Aguas continentales
6 06 Oc´eanie - Eaux continentales Ocean´ıa - Aguas continentales
E. Blondel rsdmx - Tools for reading SDMX data and metadata documents i
Introduction Architecture of rsdmx Using rsdmx Conclusions & Perspectives
rsdmx
Usage - Data structures
Read a SDMX Data Structure Definitions (DSD) document in RR
R> dsdUrl <- "http://stats.oecd.org/restsdmx/sdmx.ashx/GetDataStructure/TABLE1"
R> dsd <- readSDMX(dsdUrl)
R> class(dsd)
[1] "SDMXDataStructureDefinition"
attr(,"package")
[1] "rsdmx"
Get the codelists contained in this DSD...
R> cls <- slot(dsd, "codelists")
R> codelists <- sapply(slot(cls, "codelists"), function(x) slot(x, "id"))
R> codelists
[1] "CL_TABLE1_OBS_STATUS" "CL_TABLE1_DAC_DONOR" "CL_TABLE1_DAC_PART"
[4] "CL_TABLE1_TRANSACTYPE" "CL_TABLE1_FLOWS" "CL_TABLE1_DATATYPE"
[7] "CL_TABLE1_TIME" "CL_TABLE1_UNIT" "CL_TABLE1_POWERCODE" "CL_TABLE1_TIME_FORMAT"
...and convert one codelist into tabular data (data.frame)
R> cl <- as.data.frame(slot(dsd, "codelists"),codelistId = "CL_TABLE1_FLOWS")
R> cl
id label.fr label.en
1 1121 Versements Dons Grant Disbursements
2 1122 Versements PrOts Loan Disbursements
3 1120 Versements Bruts Gross Disbursements
4 1130 Montants Recus Amounts Received
E. Blondel rsdmx - Tools for reading SDMX data and metadata documents i
Introduction Architecture of rsdmx Using rsdmx Conclusions & Perspectives
rsdmx
Usage - readSDMX with the helping approach
rsdmx now brings the capacity to query data from a set of
well-known data providers, still using the single readSDMX function.
rsdmx embedds a list of SDMX service providers by default.
The list of data providers ”known”by readSDMX can be queried as
follows:
R> providers <- getSDMXServiceProviders()
R> sapply(providers, slot, "agencyId")
[1] "ECB" "ESTAT" "OECD" "FAO" "ILO"
The following example shows how to use readSDMX based on one
of known data provider, OECD:
R> sdmx <- readSDMX(agencyId = "OECD", operation = "GetData", key = "MIG",
filter = list("TOT", NULL, NULL),
start = 2011, end = 2011)
E. Blondel rsdmx - Tools for reading SDMX data and metadata documents i
Introduction Architecture of rsdmx Using rsdmx Conclusions & Perspectives
rsdmx
Usage - readSDMX with the helping approach
It is also possible to add your own SDMX service provider, and
make it ”known”by readSDMX!
If you are interested, you can checkout the rsdmx documentation
available online!
If you want to register your SDMX service endpoint in the default
list of providers, please contact me.
E. Blondel rsdmx - Tools for reading SDMX data and metadata documents i
Introduction Architecture of rsdmx Using rsdmx Conclusions & Perspectives
Outline
1 Introduction
2 Architecture of rsdmx
3 Using rsdmx
4 Conclusions & Perspectives
E. Blondel rsdmx - Tools for reading SDMX data and metadata documents i
Introduction Architecture of rsdmx Using rsdmx Conclusions & Perspectives
rsdmx
Success stories - Variety of datasources
Used on a variety of datasources:
with international & regional data sources: UN data portal,
UN Food & Agriculture Organization (FAO), UN International
Labour Organization (ILO) Organisation for Economic
Co-operation and Development (OECD), EUROSTAT,
European Central Bank (ECB), International Monetary Fund
(IMF), World Bank
with national data sources: Australian Bureau of Statistics
(ABS), UK’s Office of National Statistics (ONS), Deutsche
Bundesbank, INSEE (France), and more!!
E. Blondel rsdmx - Tools for reading SDMX data and metadata documents i
Introduction Architecture of rsdmx Using rsdmx Conclusions & Perspectives
rsdmx
Success stories - Use in Projects
Used in different web projects, such as:
the iMarine data e-infrastructure: within R statistical analysis
processings made available through Web Processing Services
(WPS).
the Live Labour Force project: to allow reading SDMX
datasets from the Australian Bureau of Statistics (ABS)
portal (ABS.Stat).
the SYRTO project
E. Blondel rsdmx - Tools for reading SDMX data and metadata documents i
Introduction Architecture of rsdmx Using rsdmx Conclusions & Perspectives
rsdmx
Perspectives
enable the Simple API for XML (SAX) parsing technic for
large datasets
improve the existing functionalities, e.g. dataset time
dimension format
support for additional SDMX document types and formats
extend the embedded list of SDMX service providers (rsdmx
as web-service interface)
develop a generic SDMX web-client with the shiny R
web-framework (http://shiny.rstudio.com)
E. Blondel rsdmx - Tools for reading SDMX data and metadata documents i
Introduction Architecture of rsdmx Using rsdmx Conclusions & Perspectives
rsdmx
Looking for Sponsors
rsdmx can play a fundamental role for exploiting and
co-analyzing statistics from scattered data sources in RR.
Until now, rsdmx was born from a voluntary initiative, and is
now a published library with a growing number of users. To
guarantee the sustainability of rsdmx, we are seeking for fundings,
throught sponsoring or donations to:
implement, test, validate and release improvements
guarantee a quality maintenance of the package
provide support to users & institutions that take advantage
of rsdmx
If you are interesting in supporting rsdmx, please do not hesitate
to contact me!
E. Blondel rsdmx - Tools for reading SDMX data and metadata documents i
Introduction Architecture of rsdmx Using rsdmx Conclusions & Perspectives
rsdmx
on the web
on Github:
source code: https://github.com/opensdmx/rsdmx
online documentation:
https://github.com/opensdmx/rsdmx/wiki
mailing list: rsdmx
on the Comprehensive R Archive Network (CRAN):
http://cran.r-project.org/package=rsdmx
E. Blondel rsdmx - Tools for reading SDMX data and metadata documents i

More Related Content

What's hot

informatica data replication (IDR)
informatica data replication (IDR)informatica data replication (IDR)
informatica data replication (IDR)MaxHung
 
Data Migration to Azure SQL and Azure SQL Managed Instance - June 19 2020
Data Migration to Azure SQL and Azure SQL Managed Instance - June 19 2020Data Migration to Azure SQL and Azure SQL Managed Instance - June 19 2020
Data Migration to Azure SQL and Azure SQL Managed Instance - June 19 2020Timothy McAliley
 
AZ-204T00A-PowerPoint_00.pptx
AZ-204T00A-PowerPoint_00.pptxAZ-204T00A-PowerPoint_00.pptx
AZ-204T00A-PowerPoint_00.pptxJavierMadrigal29
 
reStartEvents 10/26 All-Clearances Employer Directory
reStartEvents 10/26 All-Clearances Employer DirectoryreStartEvents 10/26 All-Clearances Employer Directory
reStartEvents 10/26 All-Clearances Employer DirectoryKen Fuller
 
Integration och GDPR det här måste du tänka på
Integration och GDPR   det här måste du tänka påIntegration och GDPR   det här måste du tänka på
Integration och GDPR det här måste du tänka påAcando Sweden
 
The Top Outages of 2021: Analysis and Takeaways
The Top Outages of 2021: Analysis and TakeawaysThe Top Outages of 2021: Analysis and Takeaways
The Top Outages of 2021: Analysis and TakeawaysThousandEyes
 
Building a modern data warehouse
Building a modern data warehouseBuilding a modern data warehouse
Building a modern data warehouseJames Serra
 
Migration to Databricks - On-prem HDFS.pptx
Migration to Databricks - On-prem HDFS.pptxMigration to Databricks - On-prem HDFS.pptx
Migration to Databricks - On-prem HDFS.pptxKshitija(KJ) Gupte
 
Windows Azure Virtual Machines
Windows Azure Virtual MachinesWindows Azure Virtual Machines
Windows Azure Virtual MachinesClint Edmonson
 
Microsoft Azure Assessment Service (MAAS) & Modernize - Datasheet
Microsoft Azure Assessment Service (MAAS) & Modernize - DatasheetMicrosoft Azure Assessment Service (MAAS) & Modernize - Datasheet
Microsoft Azure Assessment Service (MAAS) & Modernize - DatasheetTodd Erskine
 
COSAC 2021 presentation - AWS Zero Trust
COSAC 2021 presentation - AWS Zero TrustCOSAC 2021 presentation - AWS Zero Trust
COSAC 2021 presentation - AWS Zero TrustFrans Sauermann
 
DDS in Action -- Part I
DDS in Action -- Part IDDS in Action -- Part I
DDS in Action -- Part IAngelo Corsaro
 

What's hot (20)

informatica data replication (IDR)
informatica data replication (IDR)informatica data replication (IDR)
informatica data replication (IDR)
 
Data Migration to Azure SQL and Azure SQL Managed Instance - June 19 2020
Data Migration to Azure SQL and Azure SQL Managed Instance - June 19 2020Data Migration to Azure SQL and Azure SQL Managed Instance - June 19 2020
Data Migration to Azure SQL and Azure SQL Managed Instance - June 19 2020
 
DDS Over Low Bandwidth Data Links
DDS Over Low Bandwidth Data LinksDDS Over Low Bandwidth Data Links
DDS Over Low Bandwidth Data Links
 
Postgre sql vs oracle
Postgre sql vs oraclePostgre sql vs oracle
Postgre sql vs oracle
 
AZ-204T00A-PowerPoint_00.pptx
AZ-204T00A-PowerPoint_00.pptxAZ-204T00A-PowerPoint_00.pptx
AZ-204T00A-PowerPoint_00.pptx
 
Apache Atlas: Governance for your Data
Apache Atlas: Governance for your DataApache Atlas: Governance for your Data
Apache Atlas: Governance for your Data
 
FIWARE and Smart Data Models
FIWARE and Smart Data ModelsFIWARE and Smart Data Models
FIWARE and Smart Data Models
 
reStartEvents 10/26 All-Clearances Employer Directory
reStartEvents 10/26 All-Clearances Employer DirectoryreStartEvents 10/26 All-Clearances Employer Directory
reStartEvents 10/26 All-Clearances Employer Directory
 
Azure governance
Azure governanceAzure governance
Azure governance
 
Integration och GDPR det här måste du tänka på
Integration och GDPR   det här måste du tänka påIntegration och GDPR   det här måste du tänka på
Integration och GDPR det här måste du tänka på
 
The Top Outages of 2021: Analysis and Takeaways
The Top Outages of 2021: Analysis and TakeawaysThe Top Outages of 2021: Analysis and Takeaways
The Top Outages of 2021: Analysis and Takeaways
 
DW2020 Data Models - FIWARE Platform
DW2020 Data Models - FIWARE PlatformDW2020 Data Models - FIWARE Platform
DW2020 Data Models - FIWARE Platform
 
Building a modern data warehouse
Building a modern data warehouseBuilding a modern data warehouse
Building a modern data warehouse
 
Présentation AzureAD ( Identité hybrides et securité)
Présentation AzureAD ( Identité hybrides et securité)Présentation AzureAD ( Identité hybrides et securité)
Présentation AzureAD ( Identité hybrides et securité)
 
DDS In Action Part II
DDS In Action Part IIDDS In Action Part II
DDS In Action Part II
 
Migration to Databricks - On-prem HDFS.pptx
Migration to Databricks - On-prem HDFS.pptxMigration to Databricks - On-prem HDFS.pptx
Migration to Databricks - On-prem HDFS.pptx
 
Windows Azure Virtual Machines
Windows Azure Virtual MachinesWindows Azure Virtual Machines
Windows Azure Virtual Machines
 
Microsoft Azure Assessment Service (MAAS) & Modernize - Datasheet
Microsoft Azure Assessment Service (MAAS) & Modernize - DatasheetMicrosoft Azure Assessment Service (MAAS) & Modernize - Datasheet
Microsoft Azure Assessment Service (MAAS) & Modernize - Datasheet
 
COSAC 2021 presentation - AWS Zero Trust
COSAC 2021 presentation - AWS Zero TrustCOSAC 2021 presentation - AWS Zero Trust
COSAC 2021 presentation - AWS Zero Trust
 
DDS in Action -- Part I
DDS in Action -- Part IDDS in Action -- Part I
DDS in Action -- Part I
 

Similar to rsdmx - Tools for reading SDMX data and metadata in R

2016 SDMX Experts meeting, Opening of SDMX Capacity Building - Introduction ...
2016 SDMX Experts meeting, Opening of SDMX Capacity Building  - Introduction ...2016 SDMX Experts meeting, Opening of SDMX Capacity Building  - Introduction ...
2016 SDMX Experts meeting, Opening of SDMX Capacity Building - Introduction ...StatsCommunications
 
Jump Start on Apache Spark 2.2 with Databricks
Jump Start on Apache Spark 2.2 with DatabricksJump Start on Apache Spark 2.2 with Databricks
Jump Start on Apache Spark 2.2 with DatabricksAnyscale
 
Euclid Data Model 101 - Episode 01: Overview
Euclid Data Model 101 - Episode 01: OverviewEuclid Data Model 101 - Episode 01: Overview
Euclid Data Model 101 - Episode 01: Overvieweuc-dm-test
 
FIWARE Global Summit - IDS Implementation with FIWARE Software Components
FIWARE Global Summit - IDS Implementation with FIWARE Software ComponentsFIWARE Global Summit - IDS Implementation with FIWARE Software Components
FIWARE Global Summit - IDS Implementation with FIWARE Software ComponentsFIWARE
 
Distributed Systems: How to connect your real-time applications
Distributed Systems: How to connect your real-time applicationsDistributed Systems: How to connect your real-time applications
Distributed Systems: How to connect your real-time applicationsJaime Martin Losa
 
CDISC2RDF overview with examples
CDISC2RDF overview with examplesCDISC2RDF overview with examples
CDISC2RDF overview with examplesKerstin Forsberg
 
A Tale of Three Apache Spark APIs: RDDs, DataFrames, and Datasets with Jules ...
A Tale of Three Apache Spark APIs: RDDs, DataFrames, and Datasets with Jules ...A Tale of Three Apache Spark APIs: RDDs, DataFrames, and Datasets with Jules ...
A Tale of Three Apache Spark APIs: RDDs, DataFrames, and Datasets with Jules ...Databricks
 
Making your data work harder than you do
Making your data work harder than you doMaking your data work harder than you do
Making your data work harder than you doSusan Jane Williams
 
2016 SDMX Experts meeting, Implementation of SDMX RI at INS, Kamel Abdellaoui
2016 SDMX Experts meeting, Implementation of SDMX RI at INS, Kamel Abdellaoui2016 SDMX Experts meeting, Implementation of SDMX RI at INS, Kamel Abdellaoui
2016 SDMX Experts meeting, Implementation of SDMX RI at INS, Kamel AbdellaouiStatsCommunications
 
Big Data Analytics and Ubiquitous computing
Big Data Analytics and Ubiquitous computingBig Data Analytics and Ubiquitous computing
Big Data Analytics and Ubiquitous computingAnimesh Chaturvedi
 
TDWI Accelerate, Seattle, Oct 16, 2017: Distributed and In-Database Analytics...
TDWI Accelerate, Seattle, Oct 16, 2017: Distributed and In-Database Analytics...TDWI Accelerate, Seattle, Oct 16, 2017: Distributed and In-Database Analytics...
TDWI Accelerate, Seattle, Oct 16, 2017: Distributed and In-Database Analytics...Debraj GuhaThakurta
 
TWDI Accelerate Seattle, Oct 16, 2017: Distributed and In-Database Analytics ...
TWDI Accelerate Seattle, Oct 16, 2017: Distributed and In-Database Analytics ...TWDI Accelerate Seattle, Oct 16, 2017: Distributed and In-Database Analytics ...
TWDI Accelerate Seattle, Oct 16, 2017: Distributed and In-Database Analytics ...Debraj GuhaThakurta
 
DDS Advanced Tutorial - OMG June 2013 Berlin Meeting
DDS Advanced Tutorial - OMG June 2013 Berlin MeetingDDS Advanced Tutorial - OMG June 2013 Berlin Meeting
DDS Advanced Tutorial - OMG June 2013 Berlin MeetingJaime Martin Losa
 
Analytics Beyond RAM Capacity using R
Analytics Beyond RAM Capacity using RAnalytics Beyond RAM Capacity using R
Analytics Beyond RAM Capacity using RAlex Palamides
 

Similar to rsdmx - Tools for reading SDMX data and metadata in R (20)

2016 SDMX Experts meeting, Opening of SDMX Capacity Building - Introduction ...
2016 SDMX Experts meeting, Opening of SDMX Capacity Building  - Introduction ...2016 SDMX Experts meeting, Opening of SDMX Capacity Building  - Introduction ...
2016 SDMX Experts meeting, Opening of SDMX Capacity Building - Introduction ...
 
Sdmx Tools
Sdmx ToolsSdmx Tools
Sdmx Tools
 
L16 Object Relational Mapping and NoSQL
L16 Object Relational Mapping and NoSQLL16 Object Relational Mapping and NoSQL
L16 Object Relational Mapping and NoSQL
 
Database
DatabaseDatabase
Database
 
SDMX interface for ILOSTAT
SDMX interface for ILOSTATSDMX interface for ILOSTAT
SDMX interface for ILOSTAT
 
Jump Start on Apache Spark 2.2 with Databricks
Jump Start on Apache Spark 2.2 with DatabricksJump Start on Apache Spark 2.2 with Databricks
Jump Start on Apache Spark 2.2 with Databricks
 
Euclid Data Model 101 - Episode 01: Overview
Euclid Data Model 101 - Episode 01: OverviewEuclid Data Model 101 - Episode 01: Overview
Euclid Data Model 101 - Episode 01: Overview
 
FIWARE Global Summit - IDS Implementation with FIWARE Software Components
FIWARE Global Summit - IDS Implementation with FIWARE Software ComponentsFIWARE Global Summit - IDS Implementation with FIWARE Software Components
FIWARE Global Summit - IDS Implementation with FIWARE Software Components
 
Database Concepts
Database ConceptsDatabase Concepts
Database Concepts
 
Distributed Systems: How to connect your real-time applications
Distributed Systems: How to connect your real-time applicationsDistributed Systems: How to connect your real-time applications
Distributed Systems: How to connect your real-time applications
 
CDISC2RDF overview with examples
CDISC2RDF overview with examplesCDISC2RDF overview with examples
CDISC2RDF overview with examples
 
A Tale of Three Apache Spark APIs: RDDs, DataFrames, and Datasets with Jules ...
A Tale of Three Apache Spark APIs: RDDs, DataFrames, and Datasets with Jules ...A Tale of Three Apache Spark APIs: RDDs, DataFrames, and Datasets with Jules ...
A Tale of Three Apache Spark APIs: RDDs, DataFrames, and Datasets with Jules ...
 
Making your data work harder than you do
Making your data work harder than you doMaking your data work harder than you do
Making your data work harder than you do
 
2016 SDMX Experts meeting, Implementation of SDMX RI at INS, Kamel Abdellaoui
2016 SDMX Experts meeting, Implementation of SDMX RI at INS, Kamel Abdellaoui2016 SDMX Experts meeting, Implementation of SDMX RI at INS, Kamel Abdellaoui
2016 SDMX Experts meeting, Implementation of SDMX RI at INS, Kamel Abdellaoui
 
Yarn spark next_gen_hadoop_8_jan_2014
Yarn spark next_gen_hadoop_8_jan_2014Yarn spark next_gen_hadoop_8_jan_2014
Yarn spark next_gen_hadoop_8_jan_2014
 
Big Data Analytics and Ubiquitous computing
Big Data Analytics and Ubiquitous computingBig Data Analytics and Ubiquitous computing
Big Data Analytics and Ubiquitous computing
 
TDWI Accelerate, Seattle, Oct 16, 2017: Distributed and In-Database Analytics...
TDWI Accelerate, Seattle, Oct 16, 2017: Distributed and In-Database Analytics...TDWI Accelerate, Seattle, Oct 16, 2017: Distributed and In-Database Analytics...
TDWI Accelerate, Seattle, Oct 16, 2017: Distributed and In-Database Analytics...
 
TWDI Accelerate Seattle, Oct 16, 2017: Distributed and In-Database Analytics ...
TWDI Accelerate Seattle, Oct 16, 2017: Distributed and In-Database Analytics ...TWDI Accelerate Seattle, Oct 16, 2017: Distributed and In-Database Analytics ...
TWDI Accelerate Seattle, Oct 16, 2017: Distributed and In-Database Analytics ...
 
DDS Advanced Tutorial - OMG June 2013 Berlin Meeting
DDS Advanced Tutorial - OMG June 2013 Berlin MeetingDDS Advanced Tutorial - OMG June 2013 Berlin Meeting
DDS Advanced Tutorial - OMG June 2013 Berlin Meeting
 
Analytics Beyond RAM Capacity using R
Analytics Beyond RAM Capacity using RAnalytics Beyond RAM Capacity using R
Analytics Beyond RAM Capacity using R
 

Recently uploaded

ManageIQ - Sprint 236 Review - Slide Deck
ManageIQ - Sprint 236 Review - Slide DeckManageIQ - Sprint 236 Review - Slide Deck
ManageIQ - Sprint 236 Review - Slide DeckManageIQ
 
Crypto Cloud Review - How To Earn Up To $500 Per DAY Of Bitcoin 100% On AutoP...
Crypto Cloud Review - How To Earn Up To $500 Per DAY Of Bitcoin 100% On AutoP...Crypto Cloud Review - How To Earn Up To $500 Per DAY Of Bitcoin 100% On AutoP...
Crypto Cloud Review - How To Earn Up To $500 Per DAY Of Bitcoin 100% On AutoP...SelfMade bd
 
%in Midrand+277-882-255-28 abortion pills for sale in midrand
%in Midrand+277-882-255-28 abortion pills for sale in midrand%in Midrand+277-882-255-28 abortion pills for sale in midrand
%in Midrand+277-882-255-28 abortion pills for sale in midrandmasabamasaba
 
The Guide to Integrating Generative AI into Unified Continuous Testing Platfo...
The Guide to Integrating Generative AI into Unified Continuous Testing Platfo...The Guide to Integrating Generative AI into Unified Continuous Testing Platfo...
The Guide to Integrating Generative AI into Unified Continuous Testing Platfo...kalichargn70th171
 
Introducing Microsoft’s new Enterprise Work Management (EWM) Solution
Introducing Microsoft’s new Enterprise Work Management (EWM) SolutionIntroducing Microsoft’s new Enterprise Work Management (EWM) Solution
Introducing Microsoft’s new Enterprise Work Management (EWM) SolutionOnePlan Solutions
 
Right Money Management App For Your Financial Goals
Right Money Management App For Your Financial GoalsRight Money Management App For Your Financial Goals
Right Money Management App For Your Financial GoalsJhone kinadey
 
A Secure and Reliable Document Management System is Essential.docx
A Secure and Reliable Document Management System is Essential.docxA Secure and Reliable Document Management System is Essential.docx
A Secure and Reliable Document Management System is Essential.docxComplianceQuest1
 
Exploring the Best Video Editing App.pdf
Exploring the Best Video Editing App.pdfExploring the Best Video Editing App.pdf
Exploring the Best Video Editing App.pdfproinshot.com
 
Optimizing AI for immediate response in Smart CCTV
Optimizing AI for immediate response in Smart CCTVOptimizing AI for immediate response in Smart CCTV
Optimizing AI for immediate response in Smart CCTVshikhaohhpro
 
Chinsurah Escorts ☎️8617697112 Starting From 5K to 15K High Profile Escorts ...
Chinsurah Escorts ☎️8617697112  Starting From 5K to 15K High Profile Escorts ...Chinsurah Escorts ☎️8617697112  Starting From 5K to 15K High Profile Escorts ...
Chinsurah Escorts ☎️8617697112 Starting From 5K to 15K High Profile Escorts ...Nitya salvi
 
LEVEL 5 - SESSION 1 2023 (1).pptx - PDF 123456
LEVEL 5   - SESSION 1 2023 (1).pptx - PDF 123456LEVEL 5   - SESSION 1 2023 (1).pptx - PDF 123456
LEVEL 5 - SESSION 1 2023 (1).pptx - PDF 123456KiaraTiradoMicha
 
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️Delhi Call girls
 
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...Health
 
The Top App Development Trends Shaping the Industry in 2024-25 .pdf
The Top App Development Trends Shaping the Industry in 2024-25 .pdfThe Top App Development Trends Shaping the Industry in 2024-25 .pdf
The Top App Development Trends Shaping the Industry in 2024-25 .pdfayushiqss
 
10 Trends Likely to Shape Enterprise Technology in 2024
10 Trends Likely to Shape Enterprise Technology in 202410 Trends Likely to Shape Enterprise Technology in 2024
10 Trends Likely to Shape Enterprise Technology in 2024Mind IT Systems
 
AI Mastery 201: Elevating Your Workflow with Advanced LLM Techniques
AI Mastery 201: Elevating Your Workflow with Advanced LLM TechniquesAI Mastery 201: Elevating Your Workflow with Advanced LLM Techniques
AI Mastery 201: Elevating Your Workflow with Advanced LLM TechniquesVictorSzoltysek
 
W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...
W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...
W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...panagenda
 
%in Bahrain+277-882-255-28 abortion pills for sale in Bahrain
%in Bahrain+277-882-255-28 abortion pills for sale in Bahrain%in Bahrain+277-882-255-28 abortion pills for sale in Bahrain
%in Bahrain+277-882-255-28 abortion pills for sale in Bahrainmasabamasaba
 
BUS PASS MANGEMENT SYSTEM USING PHP.pptx
BUS PASS MANGEMENT SYSTEM USING PHP.pptxBUS PASS MANGEMENT SYSTEM USING PHP.pptx
BUS PASS MANGEMENT SYSTEM USING PHP.pptxalwaysnagaraju26
 
AI & Machine Learning Presentation Template
AI & Machine Learning Presentation TemplateAI & Machine Learning Presentation Template
AI & Machine Learning Presentation TemplatePresentation.STUDIO
 

Recently uploaded (20)

ManageIQ - Sprint 236 Review - Slide Deck
ManageIQ - Sprint 236 Review - Slide DeckManageIQ - Sprint 236 Review - Slide Deck
ManageIQ - Sprint 236 Review - Slide Deck
 
Crypto Cloud Review - How To Earn Up To $500 Per DAY Of Bitcoin 100% On AutoP...
Crypto Cloud Review - How To Earn Up To $500 Per DAY Of Bitcoin 100% On AutoP...Crypto Cloud Review - How To Earn Up To $500 Per DAY Of Bitcoin 100% On AutoP...
Crypto Cloud Review - How To Earn Up To $500 Per DAY Of Bitcoin 100% On AutoP...
 
%in Midrand+277-882-255-28 abortion pills for sale in midrand
%in Midrand+277-882-255-28 abortion pills for sale in midrand%in Midrand+277-882-255-28 abortion pills for sale in midrand
%in Midrand+277-882-255-28 abortion pills for sale in midrand
 
The Guide to Integrating Generative AI into Unified Continuous Testing Platfo...
The Guide to Integrating Generative AI into Unified Continuous Testing Platfo...The Guide to Integrating Generative AI into Unified Continuous Testing Platfo...
The Guide to Integrating Generative AI into Unified Continuous Testing Platfo...
 
Introducing Microsoft’s new Enterprise Work Management (EWM) Solution
Introducing Microsoft’s new Enterprise Work Management (EWM) SolutionIntroducing Microsoft’s new Enterprise Work Management (EWM) Solution
Introducing Microsoft’s new Enterprise Work Management (EWM) Solution
 
Right Money Management App For Your Financial Goals
Right Money Management App For Your Financial GoalsRight Money Management App For Your Financial Goals
Right Money Management App For Your Financial Goals
 
A Secure and Reliable Document Management System is Essential.docx
A Secure and Reliable Document Management System is Essential.docxA Secure and Reliable Document Management System is Essential.docx
A Secure and Reliable Document Management System is Essential.docx
 
Exploring the Best Video Editing App.pdf
Exploring the Best Video Editing App.pdfExploring the Best Video Editing App.pdf
Exploring the Best Video Editing App.pdf
 
Optimizing AI for immediate response in Smart CCTV
Optimizing AI for immediate response in Smart CCTVOptimizing AI for immediate response in Smart CCTV
Optimizing AI for immediate response in Smart CCTV
 
Chinsurah Escorts ☎️8617697112 Starting From 5K to 15K High Profile Escorts ...
Chinsurah Escorts ☎️8617697112  Starting From 5K to 15K High Profile Escorts ...Chinsurah Escorts ☎️8617697112  Starting From 5K to 15K High Profile Escorts ...
Chinsurah Escorts ☎️8617697112 Starting From 5K to 15K High Profile Escorts ...
 
LEVEL 5 - SESSION 1 2023 (1).pptx - PDF 123456
LEVEL 5   - SESSION 1 2023 (1).pptx - PDF 123456LEVEL 5   - SESSION 1 2023 (1).pptx - PDF 123456
LEVEL 5 - SESSION 1 2023 (1).pptx - PDF 123456
 
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️
 
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
 
The Top App Development Trends Shaping the Industry in 2024-25 .pdf
The Top App Development Trends Shaping the Industry in 2024-25 .pdfThe Top App Development Trends Shaping the Industry in 2024-25 .pdf
The Top App Development Trends Shaping the Industry in 2024-25 .pdf
 
10 Trends Likely to Shape Enterprise Technology in 2024
10 Trends Likely to Shape Enterprise Technology in 202410 Trends Likely to Shape Enterprise Technology in 2024
10 Trends Likely to Shape Enterprise Technology in 2024
 
AI Mastery 201: Elevating Your Workflow with Advanced LLM Techniques
AI Mastery 201: Elevating Your Workflow with Advanced LLM TechniquesAI Mastery 201: Elevating Your Workflow with Advanced LLM Techniques
AI Mastery 201: Elevating Your Workflow with Advanced LLM Techniques
 
W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...
W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...
W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...
 
%in Bahrain+277-882-255-28 abortion pills for sale in Bahrain
%in Bahrain+277-882-255-28 abortion pills for sale in Bahrain%in Bahrain+277-882-255-28 abortion pills for sale in Bahrain
%in Bahrain+277-882-255-28 abortion pills for sale in Bahrain
 
BUS PASS MANGEMENT SYSTEM USING PHP.pptx
BUS PASS MANGEMENT SYSTEM USING PHP.pptxBUS PASS MANGEMENT SYSTEM USING PHP.pptx
BUS PASS MANGEMENT SYSTEM USING PHP.pptx
 
AI & Machine Learning Presentation Template
AI & Machine Learning Presentation TemplateAI & Machine Learning Presentation Template
AI & Machine Learning Presentation Template
 

rsdmx - Tools for reading SDMX data and metadata in R

  • 1. Introduction Architecture of rsdmx Using rsdmx Conclusions & Perspectives rsdmx - Tools for reading SDMX data and metadata documents in RR Emmanuel Blondel emmanuel.blondel1@gmail.com CEO - International Consultant September 27, 2015 E. Blondel rsdmx - Tools for reading SDMX data and metadata documents i
  • 2. Introduction Architecture of rsdmx Using rsdmx Conclusions & Perspectives Outline 1 Introduction 2 Architecture of rsdmx 3 Using rsdmx 4 Conclusions & Perspectives E. Blondel rsdmx - Tools for reading SDMX data and metadata documents i
  • 3. Introduction Architecture of rsdmx Using rsdmx Conclusions & Perspectives SDMX Statistical Data and Metadata Exchange (SDMX) Joint initiative created in 2001 by international & regional institutions 1 Promote and develop standards and guidelines for the exchange and sharing of statistical data and metadata Definition of an abstract information model Development of standard formats Design of web-services architectures and tools Continuous process of improving the exchange of statistical data & metadata an evolving set of specifications: SDMX 1.0, 2.0, 2.1 a variety of formats: SDMX-ML, SDMX-EDI, SDMX-JSON a variety of service architectures: SOAP, REST Main SDMX format used across institutions: SDMX-ML 1 Bank for International Settlements (BIS), European Central Bank (ECB), Statistical Office of the European Union (EUROSTAT), International Monetary Fund (IMF), Organization for Economic Co-operation and Development (OECD),United Nations (UN) and World Bank E. Blondel rsdmx - Tools for reading SDMX data and metadata documents i
  • 4. Introduction Architecture of rsdmx Using rsdmx Conclusions & Perspectives Motivation Conciliating SDMX and R Need of Interoperability between statistical systems, formats and tools Need to co-analyse and process statistical data from a variety of domains (demography, socio-economics, health, environment, agriculture, fishery, etc.) from scattered data providers (national, regional & international institutions) by a growing range of actors (e.g. government institutions, statistical institutes, non-profit organizations, universities, research centers, companies) Fundamental and growing role of RR as plateform for statistical computing ...and the need of tools to facilitate reading of SDMX data and metadata in RR E. Blondel rsdmx - Tools for reading SDMX data and metadata documents i
  • 5. Introduction Architecture of rsdmx Using rsdmx Conclusions & Perspectives rsdmx Introduction First initiative to read SDMX in R made available to the R community Set of tools to read SDMX-ML data and metadata documents E. Blondel rsdmx - Tools for reading SDMX data and metadata documents i
  • 6. Introduction Architecture of rsdmx Using rsdmx Conclusions & Perspectives rsdmx Introduction Generic SDMX abstraction library for R Read SDMX documents in a flexible way: Support for SDMX-ML 1.0, 2.0 and 2.1 standard formats Support for remote or local sources, No restriction to the SDMX web-services standard specifications (for remote sources) Variety of SDMX documents: Data (generic, compact, structure-specific, etc.) Metadata (Data structure definition - DSD, Codelists, Concepts, etc.) E. Blondel rsdmx - Tools for reading SDMX data and metadata documents i
  • 7. Introduction Architecture of rsdmx Using rsdmx Conclusions & Perspectives rsdmx Introduction a single readSDMX function, with a large bandwidth of use: ”raw”approach (read from url or file) ”helping”approach (read from a list of well-known service providers, with no need to specify the entire request) a set of generic methods to convert SDMX data into tabular data (data.frame) E. Blondel rsdmx - Tools for reading SDMX data and metadata documents i
  • 8. Introduction Architecture of rsdmx Using rsdmx Conclusions & Perspectives Outline 1 Introduction 2 Architecture of rsdmx 3 Using rsdmx 4 Conclusions & Perspectives E. Blondel rsdmx - Tools for reading SDMX data and metadata documents i
  • 9. Introduction Architecture of rsdmx Using rsdmx Conclusions & Perspectives rsdmx Architecture - Object-oriented model SDMX model represented in RR with S4 classes and methods In S4 modelling, a class is made of slots (properties) the general structure of SDMX-ML document is represented with an SDMX abstract class each SDMX-ML document has a corresponding RR SDMX* class that extends the SDMX class SDMX RR representation Class "SDMX" [package "rsdmx"] Slots: Name: xmlObj schema header Class: XMLInternalDocument SDMXSchema SDMXHeader Known Subclasses: "SDMXGenericData", "SDMXCompactData", "SDMXMessageGroup", "SDMXConcepts", "SDMXCodelists", "SDMXDataStructures", "SDMXDataStructureDefinition" E. Blondel rsdmx - Tools for reading SDMX data and metadata documents i
  • 10. Introduction Architecture of rsdmx Using rsdmx Conclusions & Perspectives rsdmx Architecture - Supported SDMX-ML documents Structure types, i.e. the elements that define the data structure, including: Concepts: characteristics of a statistical dataset (dimensions, attributes, measures) Codelists: description of a dimension with a list of codes and labels Datastructures: description of the dataset structure Data Structure Definitions (DSD): complete description of a data structure including the 3 previous types Dataset types: GenericData: generic SDMX data format CompactData: compacted data format StructureSpecificData: structure specific data format UtilityData: utility data format MessageGroup: specific message type developed to enable the exchange of several data or metadata messages of a single type in a unique SDMX-ML document. Currently enabled for datasets only. E. Blondel rsdmx - Tools for reading SDMX data and metadata documents i
  • 11. Introduction Architecture of rsdmx Using rsdmx Conclusions & Perspectives rsdmx Architecture - Object-oriented model (SDMX Concepts) an SDMXConcepts object handles concepts either through concepts or conceptSchemes (depending on the SDMX version) each concept is modeled with the SDMXConcept class E. Blondel rsdmx - Tools for reading SDMX data and metadata documents i
  • 12. Introduction Architecture of rsdmx Using rsdmx Conclusions & Perspectives rsdmx Architecture - Object-oriented model (SDMX Codelists) an SDMXCodelists object handles one or more codelists each codelist is modeled with the SDMXCodelist class. It includes a list of SDMXCode E. Blondel rsdmx - Tools for reading SDMX data and metadata documents i
  • 13. Introduction Architecture of rsdmx Using rsdmx Conclusions & Perspectives rsdmx Architecture - Object-oriented model (SDMX Data structures / Key Families) an SDMXDataStructures object handles one or more data structures (or key families) each data structure is modeled with the SDMXDataStructure class. It includes a SDMXComponents object handling the dimensions, attributes, time dimension and measure E. Blondel rsdmx - Tools for reading SDMX data and metadata documents i
  • 14. Introduction Architecture of rsdmx Using rsdmx Conclusions & Perspectives rsdmx Architecture - Object-oriented model (SDMX Data structure Definition - DSD) an SDMXDataStructures object handles concepts, codelists and data structures. E. Blondel rsdmx - Tools for reading SDMX data and metadata documents i
  • 15. Introduction Architecture of rsdmx Using rsdmx Conclusions & Perspectives rsdmx Architecture - readSDMX end-user function readSDMX is the main function of rsdmx package. The function will do the following: download the SDMX-ML document determine the SDMX-ML message type and instantiate the corresponding RR SDMX* object in case of Structure message types, parse completely the document into a S4 sub-model specific to the message type E. Blondel rsdmx - Tools for reading SDMX data and metadata documents i
  • 16. Introduction Architecture of rsdmx Using rsdmx Conclusions & Perspectives rsdmx Architecture - XML Parsing technics & strategies 2 different parsing technics: Initial and current technic: using XPath requires loading the XML document tree in RR can cause R memory issues with large SDMX-ML documents Alternative approach (in factory): using the Simple API for XML (SAX) does not require loading the XML document tree in RR avoids R memory issues with large SDMX-ML documents capacity to parse remote or local SDMX-ML files 2 different parsing strategies: for Structure types: when instantiating the SDMX* object (done by readSDMX) for Dataset types: when coercing the SDMX* object to a data.frame (done by as.data.frame) E. Blondel rsdmx - Tools for reading SDMX data and metadata documents i
  • 17. Introduction Architecture of rsdmx Using rsdmx Conclusions & Perspectives Outline 1 Introduction 2 Architecture of rsdmx 3 Using rsdmx 4 Conclusions & Perspectives E. Blondel rsdmx - Tools for reading SDMX data and metadata documents i
  • 18. Introduction Architecture of rsdmx Using rsdmx Conclusions & Perspectives rsdmx Usage - Installing rsdmx rsdmx can be installed: from CRAN R> install.packages("rsdmx") from Github (requires devtools package) R> require(devtools) R> install_github("opensdmx/rsdmx") Load rsdmx in R using: R> require(rsdmx) E. Blondel rsdmx - Tools for reading SDMX data and metadata documents i
  • 19. Introduction Architecture of rsdmx Using rsdmx Conclusions & Perspectives rsdmx Usage - datasets Read a SDMX generic dataset in RR using the raw approach. R> url <- paste("http://data.fao.org/sdmx/repository/data/CROP_PRODUCTION/", ".156.5312../FAO?startPeriod=2008&endPeriod=2008", sep="") R> sdmxObj <- readSDMX(url) R> class(sdmxObj) [1] "SDMXGenericData" attr(,"package") [1] "rsdmx" Convert the SDMXGenericData into tabular data (data.frame) R> myData <- as.data.frame(sdmxObj) R> head(myData) FREQ REF_AREA INDICATOR COMMODITY DOMAIN UNITS UNIT_MULTIPLIER obsTime obsValue OBS_STATUS 1 YEAR 156 5312 515 Q No 1000 2008 8832 <NA> 2 YEAR 156 5312 526 Q No 1000 2008 450 E 3 YEAR 156 5312 367 Q No 1000 2008 700 E 4 YEAR 156 5312 572 Q No 1000 2008 4000 E 5 YEAR 156 5312 44 Q No 1000 2008 67435 <NA> 6 YEAR 156 5312 414 Q No 1000 2008 730 E E. Blondel rsdmx - Tools for reading SDMX data and metadata documents i
  • 20. Introduction Architecture of rsdmx Using rsdmx Conclusions & Perspectives rsdmx Usage - concepts Read a SDMX concepts document in RR R> url <- paste("http://data.fao.org/sdmx/registry/conceptscheme/FAO/", "ALL/LATEST/?detail=full&references=none&version=2.1", sep="") R> sdmxObj <- readSDMX(url) R> class(sdmxObj) [1] "SDMXConcepts" attr(,"package") [1] "rsdmx" Convert the SDMXConcepts into tabular data (data.frame) R> concepts <- as.data.frame(sdmxObj) R> head(concepts[,c("id","en")]) id en 1 COMMODITY COMMODITY 2 INDICATOR INDICATOR 3 REF_AREA REF_AREA 4 DOMAIN DOMAIN 5 UNIT_MEASURE UNIT_MEASURE 6 FREQ FREQ 7 FAO_MAJOR_AREA FAO Major Area 8 UN_COUNTRY UN Country 9 ENVIRONMENT Environment 10 SPECIES ASFIS Species Alpha 3 Code 11 OBS_VALUE OBS_VALUE 12 OBS_STATUS OBS_STATUS 13 UNIT UnitE. Blondel rsdmx - Tools for reading SDMX data and metadata documents i
  • 21. Introduction Architecture of rsdmx Using rsdmx Conclusions & Perspectives rsdmx Usage - codelists Read a SDMX codelists document in RR R> clUrl <- paste("http://data.fao.org/sdmx/registry/codelist/FAO/", "CL_FAO_MAJOR_AREA/0.1", sep="") R> clObj <- readSDMX(clUrl) R> class(clObj) [1] "SDMXCodelists" attr(,"package") [1] "rsdmx" Convert the SDMXCodelists into tabular data (data.frame) R> codelist <- as.data.frame(clObj) R> head(codelist[,c("id", "label.fr", "label.es")]) id label.fr label.es 1 01 Afrique - Eaux continentales ´Africa - Aguas continentales 2 02 Am´erique du Nord - Eaux continentales Am´erica del Norte - Aguas continentales 3 03 Am´erique du Sud - Eaux continentales Am´erica del Sur - Aguas continentales 4 04 Asie - Eaux continentales Asia - Aguas continentales 5 05 Europe - Eaux continentales Europa - Aguas continentales 6 06 Oc´eanie - Eaux continentales Ocean´ıa - Aguas continentales E. Blondel rsdmx - Tools for reading SDMX data and metadata documents i
  • 22. Introduction Architecture of rsdmx Using rsdmx Conclusions & Perspectives rsdmx Usage - Data structures Read a SDMX Data Structure Definitions (DSD) document in RR R> dsdUrl <- "http://stats.oecd.org/restsdmx/sdmx.ashx/GetDataStructure/TABLE1" R> dsd <- readSDMX(dsdUrl) R> class(dsd) [1] "SDMXDataStructureDefinition" attr(,"package") [1] "rsdmx" Get the codelists contained in this DSD... R> cls <- slot(dsd, "codelists") R> codelists <- sapply(slot(cls, "codelists"), function(x) slot(x, "id")) R> codelists [1] "CL_TABLE1_OBS_STATUS" "CL_TABLE1_DAC_DONOR" "CL_TABLE1_DAC_PART" [4] "CL_TABLE1_TRANSACTYPE" "CL_TABLE1_FLOWS" "CL_TABLE1_DATATYPE" [7] "CL_TABLE1_TIME" "CL_TABLE1_UNIT" "CL_TABLE1_POWERCODE" "CL_TABLE1_TIME_FORMAT" ...and convert one codelist into tabular data (data.frame) R> cl <- as.data.frame(slot(dsd, "codelists"),codelistId = "CL_TABLE1_FLOWS") R> cl id label.fr label.en 1 1121 Versements Dons Grant Disbursements 2 1122 Versements PrOts Loan Disbursements 3 1120 Versements Bruts Gross Disbursements 4 1130 Montants Recus Amounts Received E. Blondel rsdmx - Tools for reading SDMX data and metadata documents i
  • 23. Introduction Architecture of rsdmx Using rsdmx Conclusions & Perspectives rsdmx Usage - readSDMX with the helping approach rsdmx now brings the capacity to query data from a set of well-known data providers, still using the single readSDMX function. rsdmx embedds a list of SDMX service providers by default. The list of data providers ”known”by readSDMX can be queried as follows: R> providers <- getSDMXServiceProviders() R> sapply(providers, slot, "agencyId") [1] "ECB" "ESTAT" "OECD" "FAO" "ILO" The following example shows how to use readSDMX based on one of known data provider, OECD: R> sdmx <- readSDMX(agencyId = "OECD", operation = "GetData", key = "MIG", filter = list("TOT", NULL, NULL), start = 2011, end = 2011) E. Blondel rsdmx - Tools for reading SDMX data and metadata documents i
  • 24. Introduction Architecture of rsdmx Using rsdmx Conclusions & Perspectives rsdmx Usage - readSDMX with the helping approach It is also possible to add your own SDMX service provider, and make it ”known”by readSDMX! If you are interested, you can checkout the rsdmx documentation available online! If you want to register your SDMX service endpoint in the default list of providers, please contact me. E. Blondel rsdmx - Tools for reading SDMX data and metadata documents i
  • 25. Introduction Architecture of rsdmx Using rsdmx Conclusions & Perspectives Outline 1 Introduction 2 Architecture of rsdmx 3 Using rsdmx 4 Conclusions & Perspectives E. Blondel rsdmx - Tools for reading SDMX data and metadata documents i
  • 26. Introduction Architecture of rsdmx Using rsdmx Conclusions & Perspectives rsdmx Success stories - Variety of datasources Used on a variety of datasources: with international & regional data sources: UN data portal, UN Food & Agriculture Organization (FAO), UN International Labour Organization (ILO) Organisation for Economic Co-operation and Development (OECD), EUROSTAT, European Central Bank (ECB), International Monetary Fund (IMF), World Bank with national data sources: Australian Bureau of Statistics (ABS), UK’s Office of National Statistics (ONS), Deutsche Bundesbank, INSEE (France), and more!! E. Blondel rsdmx - Tools for reading SDMX data and metadata documents i
  • 27. Introduction Architecture of rsdmx Using rsdmx Conclusions & Perspectives rsdmx Success stories - Use in Projects Used in different web projects, such as: the iMarine data e-infrastructure: within R statistical analysis processings made available through Web Processing Services (WPS). the Live Labour Force project: to allow reading SDMX datasets from the Australian Bureau of Statistics (ABS) portal (ABS.Stat). the SYRTO project E. Blondel rsdmx - Tools for reading SDMX data and metadata documents i
  • 28. Introduction Architecture of rsdmx Using rsdmx Conclusions & Perspectives rsdmx Perspectives enable the Simple API for XML (SAX) parsing technic for large datasets improve the existing functionalities, e.g. dataset time dimension format support for additional SDMX document types and formats extend the embedded list of SDMX service providers (rsdmx as web-service interface) develop a generic SDMX web-client with the shiny R web-framework (http://shiny.rstudio.com) E. Blondel rsdmx - Tools for reading SDMX data and metadata documents i
  • 29. Introduction Architecture of rsdmx Using rsdmx Conclusions & Perspectives rsdmx Looking for Sponsors rsdmx can play a fundamental role for exploiting and co-analyzing statistics from scattered data sources in RR. Until now, rsdmx was born from a voluntary initiative, and is now a published library with a growing number of users. To guarantee the sustainability of rsdmx, we are seeking for fundings, throught sponsoring or donations to: implement, test, validate and release improvements guarantee a quality maintenance of the package provide support to users & institutions that take advantage of rsdmx If you are interesting in supporting rsdmx, please do not hesitate to contact me! E. Blondel rsdmx - Tools for reading SDMX data and metadata documents i
  • 30. Introduction Architecture of rsdmx Using rsdmx Conclusions & Perspectives rsdmx on the web on Github: source code: https://github.com/opensdmx/rsdmx online documentation: https://github.com/opensdmx/rsdmx/wiki mailing list: rsdmx on the Comprehensive R Archive Network (CRAN): http://cran.r-project.org/package=rsdmx E. Blondel rsdmx - Tools for reading SDMX data and metadata documents i