18.07.2013
Module DataLift
MagicCSV
2
18.07.2013Gabriel KEPEKLIANProblématique du module
▶DataLift en un clic !
▶ Le défi : peut-on déclencher en un seul clic l’élévation et l’interconnexion de jeux de données proches pour produire un jeu 5 étoiles ?
3
18.07.2013Gabriel KEPEKLIANREALITY
4
18.07.2013Gabriel KEPEKLIANLes données sources
CSV or not CSV, that is the question
▶ Beaucoup de données … certaines sont des data plutôt cool
5
18.07.2013Gabriel KEPEKLIANCSV
▶ Une RFC décrit le format CSV : RFC 4180 - Common Format and MIME Type for Comma-Separated Values (CSV) Files).
▶ Un fichier CSV doit respecter certaines contraintes.
– Être encodé en UTF-8– Ne pas contenir plus de champs que de colonnes– Avoir un enregistrement par ligne– Utiliser la virgule comme delimiteur– Utiliser un delimiteur de fin de ligne
– Si un CSV s’écarte de ces contraintes, c’est un dialect CSVDDF
http://www.normes-internet.com/normes.php?rfc=rfc4180&lang=fr
6
18.07.2013Gabriel KEPEKLIAN
CSV Dialect Description Format (CSVDDF)
7
18.07.2013Gabriel KEPEKLIAN
CSV Dialect Description Format (CSVDDF)
{ "csvddf_version": 1.0, "dialect": { "delimiter": ",", "doublequote": false, "lineterminator": "\r\n", "quotechar": "\"", "skipinitialspace": false }}
http://www.dataprotocols.org/en/latest/csv-dialect.html
8
18.07.2013Gabriel KEPEKLIANSimple Data Format (SDF)
http://www.dataprotocols.org/en/latest/simple-data-format.html
9
18.07.2013Gabriel KEPEKLIANSimple Data Format (SDF)
▶ 2 fichiers
▶ data.csv▶ datapackage.json
{ "name": "my-dataset", # here we list the data files in this dataset "resources": [ { "path": "data.csv", "schema": { "fields": [ { "id": "var1", "type": "string" }, { "id": "var2", "type": "integer" }, { "id": "var3", "type": "number" } ] } } ]}
var1,var2,var3A,1,2B,3,4
datapackage.json
data.csv
10
18.07.2013Gabriel KEPEKLIANDSPL : Dataset Publishing Language
▶ Un jeu de données DSPL est un lot qui contient un fichier XML (métadonnées du jeu de données) et un ensemble de fichiers CSV.
https://developers.google.com/public-data/docs/tutorial
11
18.07.2013Gabriel KEPEKLIAN
DSPL
12
18.07.2013Gabriel KEPEKLIANLinked CSV
http://jenit.github.io/linked-csv/
18.07.2013
Plusieurs formats possibles
Nous avons choisi de commencer avec Linked CSV
18.07.2013
La logique du magicCSV
15
18.07.2013Gabriel KEPEKLIANEtape 1 : un répertoire
▶Quelque soit le format de data de type CSV, nous partons d’un répertoire
▶Ce répertoire contient des fichiers homogènes en format
▶On ne traitera que les fichiers présentant cette homogénéité
16
18.07.2013Gabriel KEPEKLIANEtape 2 : collecter les méta
▶Réunir tous les noms de colonne
▶Nom de fichier ▶Nom de colonne▶[Type de données]
N fois
▶Contexte :– On pourrait noter
la langue utilisée.
▶Normaliser les noms de colonne
17
18.07.2013Gabriel KEPEKLIANEtape 3 : Trouver des ontologies …
▶Les noms de colonne sont nos futurs prédicats
▶Pour chaque nom de colonne, le LOV ne pourrait-il pas nous proposer la liste des ontologies où on trouve ce nom ?
▶Variante : profiter du type de données de la colonne
▶Variante : profiter de la langue utilisée
▶Nom de fichier ▶Nom de colonne▶[Type de données]▶{Ontologie}*
N fois
18
18.07.2013Gabriel KEPEKLIANEtape 4 : Reserrer
▶Réduire le nombre d’ontologies mises en jeu dans la liste des prédicats et maximiser le score du matching
▶Note 1– les ontologies
doivent être présentes dans LOV
▶Les noms de colonne qui matchent sont remplacés par l’URI du prédicat
Using the LOV Search API. The number of ontologies per data set must be minimized to improve the level of consistency and integration.
19
18.07.2013Gabriel KEPEKLIANEtape 5 : Finaliser
▶Le matching peut demeurer incomplet
▶Alternative :– compléter automatiquement– compléter manuellement
▶Note 2– les manques de
correspondances peuvent donner lieu à des « améliorations » d’ontologie.▶On finit de remplacer par des
URI les derniers prédicats
18.07.2013
Jeu d’essai retenu
21
18.07.2013Gabriel KEPEKLIANLes ontologies mises en jeu
▶ ORG - Core organization ontology– http://lov.okfn.org/dataset/lov/details/vocabulary_org.html
22
18.07.2013Gabriel KEPEKLIANORG - Core organization ontology
#PREFIX org: <http://www.w3.org/ns/org#>
23
18.07.2013Gabriel KEPEKLIANLes ontologies mises en jeu
▶ EVENT - The Event Ontology– http://lov.okfn.org/dataset/lov/details/vocabulary_event.html
24
18.07.2013Gabriel KEPEKLIANEVENT - The Event Ontology
#PREFIX event: <http://purl.org/NET/c4dm/event.owl#>
25
18.07.2013Gabriel KEPEKLIANLes données utilisées
▶ Des événements organisés par des organisations …
▶ Des organisations organisants des événements …
▶ Des accidents subis par des entreprises, des collectivités …
▶ Liste des évènements culturels et des organismes producteurs d'événements en France et des grandes manifestations en France et à l'étranger …
18.07.2013
Atos, the Atos logo, Atos Consulting, Atos Worldline, Atos Sphere, Atos Cloud and Atos WorldGrid
are registered trademarks of Atos SA. June 2011
© 2011 Atos. Confidential information owned by Atos, to be used by the recipient only. This document, or any part of it, may not be reproduced, copied, circulated and/or distributed nor quoted
without prior written approval from Atos.
MerciGabriel Képéklian, resp. R&D
Top Related