Advertisement

When Drupal meets OpenData

Software architect and analyst at Twinbit
May. 16, 2011
Advertisement

More Related Content

Slideshows for you(20)

Advertisement
Advertisement

When Drupal meets OpenData

  1. When Drupal meets Opendata PHPDay 2011 - Social tag #phpday
  2. Chi siamo?
  3. Chi siamo? Stefano Mainardi, sviluppatore PHP, CEO di Twinbit e fondatore del network italiano ILDN Piacere di conoscervi! stefano@twinbit.it twitter : @stefanomainardi
  4. Chi siamo? Paolo Mainardi, sviluppatore PHP, CTO di Twinbit e Stefano Mainardi, fondatore del network italiano sviluppatore PHP, CEO di ILDN Twinbit e fondatore del network italiano ILDN Piacere di conoscervi! Piacere di conoscervi! paolo@twinbit.it stefano@twinbit.it twitter : @paolomainardi twitter : @stefanomainardi
  5. Chi siamo? Paolo Mainardi, sviluppatore PHP, CTO di Twinbit e Stefano Mainardi, fondatore del network italiano sviluppatore PHP, CEO di ILDN Twinbit e fondatore del network italiano ILDN Piacere di conoscervi! Piacere di conoscervi! paolo@twinbit.it stefano@twinbit.it twitter : paolomainardi twitter : stefanomainardi Piacere, io sono Drupal! :-)
  6. Quanti di voi utilizzano Drupal?
  7. Cosa sono gli “Open Data”?
  8. definizione “accademica” Con Open Data si fa riferimento ad una filosofia, che è al tempo stesso una pratica, che implica che alcune tipologie di dati siano liberamente accessibili a tutti sul Web, senza restrizioni di copyright, brevetti o altre forme di controllo che ne limitino la riproduzione. da Wikipedia
  9. e quindi?
  10. http://www.flickr.com/photos/f7oor/405046410/
  11. Data is a precious thing and will last longer than the systems themselves. Tim Berners-Lee http://www.flickr.com/photos/f7oor/405046410/ 1/2
  12. I dati sono noiose scatole marroni, ed è così che ce li immaginiamo, no? Perché i dati di per sé non sono di immediata applicazione Ma in realtà, i dati determinano tantissime cose nelle nostre vite e ciò accade perché c’è qualcuno che prende quei dati e ne fa qualcosa. credits: Ernesto Bellisario “Come si fa OpenData” Tim Berners-Lee http://www.flickr.com/photos/f7oor/405046410/ 2/2
  13. “Economia della conoscenza”
  14. ma in italia cosa succede?
  15. il movimento OpenData italiano http://linkedopendata.it/ http://spaghettiopendata.org/ http://datagov.it/ http://www.agoradigitale.org/ http://www.openpolis.it/
  16. quali formati dobbiamo utilizzare?
  17. .KML .XML .CSV .TXT .GTFS .JSON
  18. .KML .XML .CSV .TXT .GTFS .JSON insomma, formati standard che siano machine readable l’importante è non far nascere un flame sui formati :-)
  19. .KML .XML .CSV .TXT .GTFS .JSON
  20. .KML .XML .CSV .TXT .GTFS .JSON Mobile Apps
  21. .KML .XML .CSV .TXT .GTFS .JSON Mobile Apps Web Apps
  22. .KML .XML .CSV .TXT .GTFS .JSON Mobile Apps Web Apps Data API
  23. I dati sono il carburante, le applicazioni sono il mezzo
  24. 47 web, iPhone & Facebook Apps $2,300,000 risparmiati $50,000 il costo delle applicazioni +5000% in ROI
  25. Perchè Drupal ?
  26. Perchè Drupal ? • Una piattaforma pensata per fare Open Data (D7 RDFa, Nodes, Taxonomy)
  27. Perchè Drupal ? • Una piattaforma pensata per fare Open Data (D7 RDFa, Nodes, Taxonomy) • Semplici interfacce di amministrazione per utenti non esperti (D7 UX)
  28. Perchè Drupal ? • Una piattaforma pensata per fare Open Data (D7 RDFa, Nodes, Taxonomy) • Semplici interfacce di amministrazione per utenti non esperti (D7 UX) • Semplice integrazione con i servizi di terze parti (CKAN, OpenCalais, OSM, Mapbox ecc..)
  29. Perchè Drupal ? • Una piattaforma pensata per fare Open Data (D7 RDFa, Nodes, Taxonomy) • Semplici interfacce di amministrazione per utenti non esperti (D7 UX) • Semplice integrazione con i servizi di terze parti (CKAN, OpenCalais, OSM, Mapbox ecc..) • Importanti case history governative di successo (List of Drupal sites in Government: http://groups.drupal.org/node/19885)
  30. Perchè Drupal ?
  31. Perchè Drupal ? •CCK - Fields in core
  32. Perchè Drupal ? •CCK - Fields in core •Feeds
  33. Perchè Drupal ? •CCK - Fields in core •Feeds •Views - Views datasource
  34. Perchè Drupal ? •CCK - Fields in core •Feeds •Views - Views datasource •Geo Modules (Openlayers, Geofield)
  35. Perchè Drupal ? •CCK - Fields in core •Feeds •Views - Views datasource •Geo Modules (Openlayers, Geofield) •Supporto nativo per i Linked Data (RDFa)
  36. Perchè Drupal ? •CCK - Fields in core •Feeds •Views - Views datasource •Geo Modules (Openlayers, Geofield) •Supporto nativo per i Linked Data (RDFa) •SPARQL
  37. Case history di successo http://data.worldbank.org
  38. Case history di successo http://www.aquaknow.net
  39. Case history di successo http://data.gov.uk CKAN Dataset Faceted Search by Apache Solr
  40. Case history di successo http://www.openbelgium.be
  41. Phase 1: Creare Open Data Qualsiasi contenuto è potenzialmente un OpenData.....
  42. Phase 1: Creare Open Data Qualsiasi contenuto è potenzialmente un OpenData..... “A piece of content or data is open if anyone is free to use, reuse, and redistribute it — subject only, at most, to the requirement to attribute and share alike.” (Open Knowledge Definition)
  43. Phase 1: Creare Open Data Qualsiasi contenuto è potenzialmente un OpenData..... “A piece of content or data is open if anyone is free to use, reuse, and redistribute it — subject only, at most, to the requirement to attribute and share alike.” (Open Knowledge Definition) Seguiamo queste semplici regole:
  44. Phase 1: Creare Open Data Qualsiasi contenuto è potenzialmente un OpenData..... “A piece of content or data is open if anyone is free to use, reuse, and redistribute it — subject only, at most, to the requirement to attribute and share alike.” (Open Knowledge Definition) Seguiamo queste semplici regole: •Specificare la fonte
  45. Phase 1: Creare Open Data Qualsiasi contenuto è potenzialmente un OpenData..... “A piece of content or data is open if anyone is free to use, reuse, and redistribute it — subject only, at most, to the requirement to attribute and share alike.” (Open Knowledge Definition) Seguiamo queste semplici regole: •Specificare la fonte •Usare una licenza aperta
  46. Phase 1: Creare Open Data Qualsiasi contenuto è potenzialmente un OpenData..... “A piece of content or data is open if anyone is free to use, reuse, and redistribute it — subject only, at most, to the requirement to attribute and share alike.” (Open Knowledge Definition) Seguiamo queste semplici regole: •Specificare la fonte •Usare una licenza aperta •Usare formati aperti e semplici da processare automaticamente (CSV, XLS, XML, JSON)
  47. Phase 1: Creare Open Data Qualsiasi contenuto è potenzialmente un OpenData..... “A piece of content or data is open if anyone is free to use, reuse, and redistribute it — subject only, at most, to the requirement to attribute and share alike.” (Open Knowledge Definition) Seguiamo queste semplici regole: •Specificare la fonte •Usare una licenza aperta •Usare formati aperti e semplici da processare automaticamente (CSV, XLS, XML, JSON) OpenDefinition: http://www.opendefinition.org/okd/ Open Data Commons: http://www.opendatacommons.org Cretive Commons: http://www.opendatacommons.org
  48. Phase 1: Creare Open Data Creare un nuovo content type ed un vocabolario
  49. Phase 1: Creare Open Data Creare un nuovo content type ed un vocabolario
  50. Phase 1: Creare Open Data Creare un nuovo content type ed un vocabolario DataTypes Vocabulary License Vocabulary
  51. Phase 1: Creare Open Data Creare un nuovo content type ed un vocabolario DataTypes Vocabulary License Vocabulary Fields
  52. Phase 1: Creare Open Data Creare un nuovo content type ed un vocabolario
  53. Phase 1: Creare Open Data Creare un nuovo content type ed un vocabolario Open data creation form
  54. Phase 1: Creare Open Data Creare un nuovo content type ed un vocabolario Open data creation form
  55. Phase 1: Creare Open Data Creare un nuovo content type ed un vocabolario Open data creation form Taxonomy
  56. Phase 1: Creare Open Data Creare un nuovo content type ed un vocabolario Open data creation form Taxonomy Data properties
  57. Phase 1: Creare Open Data Creare un nuovo content type ed un vocabolario Open data creation form Taxonomy Data properties Comments
  58. Phase 2: Distribuire Open Data Come posso distribuire i miei dati ?
  59. Phase 2: Distribuire Open Data Come posso distribuire i miei dati ? core x/html
  60. Phase 2: Distribuire Open Data Come posso distribuire i miei dati ? core x/html RDFa
  61. Phase 2: Distribuire Open Data Come posso distribuire i miei dati ? core x/html RSS RDFa
  62. Phase 2: Distribuire Open Data Come posso distribuire i miei dati ? core contrib modules x/html RSS json xml rdf RDFa csv
  63. Phase 2: Distribuire Open Data Come posso distribuire i miei dati ? core contrib modules x/html RSS json xml rdf RDFa csv Views + Views Datasource
  64. Phase 2: Distribuire Open Data Come posso distribuire i miei dati ? core contrib modules charts x/html RSS json kml {$other formats} xml rdf RDFa csv Views + Views Datasource
  65. Phase 2: Distribuire Open Data Come posso distribuire i miei dati ? core contrib modules charts x/html RSS json kml {$other formats} xml rdf RDFa csv http://drupal.org/project/modules Views + Views Datasource
  66. Phase 2: Distribuire Open Data Come posso distribuire i miei dati ? Posso essere anche solo un servizio per la tua applicazione: http://drupal.org/project/services XMLRPC, JSON, JSON-RPC, REST, SOAP, AMF, etc. core contrib modules charts x/html RSS json kml {$other formats} xml rdf RDFa csv http://drupal.org/project/modules Views + Views Datasource
  67. Phase 2: Distribuire Open Data Views Example: Create a new display
  68. Phase 2: Distribuire Open Data Views Example: Create a new display Filter by “data” type contents
  69. Phase 2: Distribuire Open Data Views Example: Create a new display Select fields to print Filter by “data” type contents
  70. Phase 2: Distribuire Open Data Views Example: Create a new display Print results on a table Select fields to print Filter by “data” type contents
  71. Phase 2: Distribuire Open Data Views Example: Create a new display Print results on a table Select fields to print Filter by “data” type contents Expose search fields
  72. Phase 2: Distribuire Open Data Views Example: Create a new display Output type Print results on a table Select fields to print Filter by “data” type contents Expose search fields
  73. Phase 2: Distribuire Open Data Views Example: Results
  74. Phase 2: Distribuire Open Data Views Example: Results Results
  75. Phase 2: Distribuire Open Data Views Example: Results Exposed form Results
  76. Phase 2: Distribuire Open Data Views Example: Results Exposed form Results RSS Export
  77. Phase 2: Distribuire Open Data Views Example: Results Exposed form Results RSS Export Click to download in other formats!
  78. Phase 2: Distribuire Open Data Example: Geo tools
  79. Phase 2: Distribuire Open Data Openlayers module Example: Geo tools
  80. Phase 2: Distribuire Open Data Openlayers module Example: Geo tools Drupal nodes
  81. Phase 2: Distribuire Open Data Example: Geo tools Layer manager
  82. Phase 2: Distribuire Open Data Example: Geo tools Layer manager
  83. Phase 2: Distribuire Open Data Example: Geo tools Views Datasource (json) Layer manager
  84. Phase 2: Distribuire Open Data Example: Apache Solr -- http://drupal.org/project/apachesolr
  85. Phase 2: Distribuire Open Data Used on Drupal.org Example: Apache Solr -- http://drupal.org/project/apachesolr
  86. Phase 2: Distribuire Open Data Used on Drupal.org Example: Apache Solr -- http://drupal.org/project/apachesolr Faceted Search
  87. Phase 2: Distribuire Open Data Used on Drupal.org Example: Apache Solr -- http://drupal.org/project/apachesolr • Powerful text extraction Faceted Search • Multisite search • Attachment search
  88. Phase 3: Data processing Feeds: http://drupal.org/project/feeds
  89. Phase 3: Data processing Feeds: http://drupal.org/project/feeds Pluggable fetcher
  90. Phase 3: Data processing Feeds: http://drupal.org/project/feeds Pluggable fetcher Pluggable parser
  91. Phase 3: Data processing Feeds: http://drupal.org/project/feeds Pluggable fetcher Pluggable parser Pluggable processors
  92. Phase 3: Data processing Feeds: http://drupal.org/project/feeds Pluggable fetcher Pluggable parser Pluggable processors
  93. Phase 3: Data processing Feeds Parser Feeds Xpath Parser: http://drupal.org/project/feeds_xpathparser Feeds QueryPath Parser: http://drupal.org/project/feeds_querypath_parser Data importing projects http://drupal.org/project/migrate “The migrate module provides a flexible framework for migrating content into Drupal from other sources (e.g., when converting a web site from another CMS to Drupal)” http://drupal.org/project/data “Data module helps you model, manage and query related sets of tables. It offers an administration interface and a low level API for manipulating tables and accessing their contents. D module provides Views integration for displaying table data and Drupal search integration for searching table content.”
  94. Linked Data http://groups.drupal.org/semantic-web http://www.w3.org/2001/sw/
  95. RDF http://openspring.net/blog/2011/05/01/background-research-work-leading-to-rdf-in-drupal-7-released-as-part-of-my-masters
  96. RDF http://drupal.org/project/rdfx http://drupal.org/project/rdf (d6) API http://api.drupal.org/api/drupal/modules--rdf--rdf.module/group/rdf/7
  97. RDF http://drupal.org/project/rdfx http://drupal.org/project/rdf (d6) API http://api.drupal.org/api/drupal/modules--rdf--rdf.module/group/rdf/7 • RDFx: extends core RDF support by providing extra APIs and additional serialization formats such as RDF/XML, NTriples, Turtle...
  98. RDF http://drupal.org/project/rdfx http://drupal.org/project/rdf (d6) API http://api.drupal.org/api/drupal/modules--rdf--rdf.module/group/rdf/7 • RDFx: extends core RDF support by providing extra APIs and additional serialization formats such as RDF/XML, NTriples, Turtle... • RDF UI: allows site administrators to specify the RDF mappings via a user interface
  99. RDF http://drupal.org/project/rdfx http://drupal.org/project/rdf (d6) API http://api.drupal.org/api/drupal/modules--rdf--rdf.module/group/rdf/7 • RDFx: extends core RDF support by providing extra APIs and additional serialization formats such as RDF/XML, NTriples, Turtle... • RDF UI: allows site administrators to specify the RDF mappings via a user interface • Evoc: user interface to import vocabularies which can be used in RDF UI
  100. RDF http://drupal.org/project/rdfx http://drupal.org/project/rdf (d6) API http://api.drupal.org/api/drupal/modules--rdf--rdf.module/group/rdf/7 • RDFx: extends core RDF support by providing extra APIs and additional serialization formats such as RDF/XML, NTriples, Turtle... • RDF UI: allows site administrators to specify the RDF mappings via a user interface • Evoc: user interface to import vocabularies which can be used in RDF UI This RDF data can be made available in a SPARQL endpoint with the SPARQL module.
  101. SPARQL http://drupal.org/project/sparql SPARQL is a query language for pattern matching against RDF graphs. The syntax resembles SQL, making for a friendly learning curve, but SPARQL is far more powerful, enabling queries spanning multiple disparate (local or remote) data sources containing heterogeneous semistructured data.
  102. SPARQL http://drupal.org/project/sparql SPARQL is a query language for pattern matching against RDF graphs. The syntax resembles SQL, making for a friendly learning curve, but SPARQL is far more powerful, enabling queries spanning multiple disparate (local or remote) data sources containing heterogeneous semistructured data. •SPARQL API module
  103. SPARQL http://drupal.org/project/sparql SPARQL is a query language for pattern matching against RDF graphs. The syntax resembles SQL, making for a friendly learning curve, but SPARQL is far more powerful, enabling queries spanning multiple disparate (local or remote) data sources containing heterogeneous semistructured data. •SPARQL API module •SPARQL Registry module
  104. SPARQL http://drupal.org/project/sparql SPARQL is a query language for pattern matching against RDF graphs. The syntax resembles SQL, making for a friendly learning curve, but SPARQL is far more powerful, enabling queries spanning multiple disparate (local or remote) data sources containing heterogeneous semistructured data. •SPARQL API module •SPARQL Registry module •SPARQL Endpoint module
  105. LOD Cloud “Linking Open Data cloud diagram, by Richard Cyganiak and Anja Jentzsch. http://lod-cloud.net/”
  106. References The Semantic Web, Linked Data and Drupal, Part 1: Expose your data using RDF http://www.ibm.com/developerworks/web/library/wa-rdf/index.html?ca=drs- The Semantic Web, Linked Data and Drupal, Part 2: Combine linked datasets with Drupal 7 and SPARQL Views http://www.ibm.com/developerworks/web/library/wa-rdf/index.html?ca=drs- Background research work leading to RDF in Drupal 7 released as part of my Master's thesis http://openspring.net/blog/2011/05/01/background-research-work-leading-to-rdf-in-drupal-7-released-as-part-of-my-masters Background research work leading to RDF in Drupal 7 released as part of my Master's thesis http://openspring.net/blog/2011/05/01/background-research-work-leading-to-rdf-in-drupal-7-released-as-part-of-my-masters “Hi, I'm Lin Clark. I support open source and linked data.” http://lin-clark.com/
  107. one more thing è in arrivo il primo contest italiano sugli OpenData http://www.appsforitaly.org/
  108. Questions?
  109. Rimaniamo in contatto! Stefano Mainardi Paolo Mainardi stefano@twinbit.it paolo@twinbit.it twitter : @stefanomainardi twitter : @paolomainardi
  110. Grazie!

Editor's Notes

  1. \n
  2. \n
  3. \n
  4. \n
  5. \n
  6. \n
  7. \n
  8. \n
  9. \n
  10. \n
  11. \n
  12. \n
  13. \n
  14. \n
  15. \n
  16. \n
  17. \n
  18. \n
  19. \n
  20. \n
  21. \n
  22. \n
  23. \n
  24. \n
  25. \n
  26. \n
  27. \n
  28. \n
  29. \n
  30. \n
  31. \n
  32. \n
  33. \n
  34. \n
  35. \n
  36. \n
  37. \n
  38. \n
  39. \n
  40. \n
  41. \n
  42. \n
  43. \n
  44. \n
  45. \n
  46. \n
  47. \n
  48. \n
  49. \n
  50. \n
  51. \n
  52. \n
  53. \n
  54. \n
  55. \n
  56. \n
  57. \n
  58. \n
  59. \n
  60. \n
  61. \n
  62. \n
  63. \n
  64. \n
  65. \n
  66. \n
  67. \n
  68. \n
  69. \n
  70. \n
  71. \n
  72. \n
  73. \n
  74. \n
  75. \n
  76. \n
  77. \n
  78. \n
  79. \n
  80. \n
  81. \n
  82. \n
  83. \n
  84. \n
  85. \n
  86. \n
  87. \n
  88. \n
  89. \n
  90. \n
  91. \n
  92. \n
  93. \n
  94. \n
  95. \n
  96. \n
  97. \n
  98. \n
  99. \n
  100. \n
  101. \n
  102. \n
  103. \n
  104. \n
  105. \n
  106. \n
  107. \n
  108. \n
  109. \n
  110. \n
Advertisement