Drupal and the Semantic Web - ESIP Webinar

1,250 views
1,094 views

Published on

An update on the latest semantic web modules for Drupal, in particular the RDF Indexer for provide a SPARQL endpoint of Drupal's RDF data.

Published in: Technology
0 Comments
2 Likes
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total views
1,250
On SlideShare
0
From Embeds
0
Number of Embeds
3
Actions
Shares
0
Downloads
0
Comments
0
Likes
2
Embeds 0
No embeds

No notes for slide

Drupal and the Semantic Web - ESIP Webinar

  1. 1. Semantic Web and Drupal 7 Stéphane Corlosquet ESIP webinar June, 2013
  2. 2. About the speaker ● Stéphane “scor” Corlosquet ● 7 years with Drupal ● Software engineer ● Drupal 7 RDF core maintainer ● Drupal Security Team member ● Co-authored the Definitive Guide to Drupal 7 ● Contrib modules: RDF Extensions, SPARQL, schema.org, WebID ● Member of the RDFa WG at W3C
  3. 3. The Semantic Web
  4. 4. The Web today
  5. 5. Many information silos Image credits: www.pidgintech.com
  6. 6. Many isolated and disparate communities Image credits: www.pidgintech.com
  7. 7. Growing amount of information ● Blogs, News, Comments ● Social platforms: Facebook, Google plus ● Everyday more and more content is published ● Desktop, laptops, tablets, smartphones... ● Sensor data for weather, traffic, healthcare ● Billions of public pages ● Deep web?
  8. 8. What do machines see?
  9. 9. Challenge: How can machines help us search all this information?
  10. 10. Vision of the Semantic Web ● Transition to the Giant Global Graph ● WWW = content+links ● GGG = WWW+relationships+descriptions ● Universal medium for data, information and knowledge exchange
  11. 11. Evolution of the Web
  12. 12. The One Machine ● All devices connected ● Personal computers ● Data servers ● Cell phones ● PDAs ● RFID tags http://www.kk.org/thetechnium/archives/2007/11/dimensions_of_t.php
  13. 13. Key ● Agree on Standards ● Open Data
  14. 14. Linked Data
  15. 15. Linked Open Data Cloud
  16. 16. LOD cloud by domain Distribution of triples by domain. Source: Linking Open Data cloud staistics, by Richard Cyganiak and Anja Jentzsch. http://lod-cloud.net/
  17. 17. LOD cloud providers ● BBC ● US Census ● UK Gov ● Music Brainz ● Dbpedia ● Wikidata (WikiMedia foundation, funded by Google, etc.) ● Freebase (Google)
  18. 18. Rich Snippets
  19. 19. Google
  20. 20. Yahoo!
  21. 21. Bing
  22. 22. Structured Data in HTML ● Helps machines extract relevant data from HTML ● Can make use of this data in new ways: – enhanced search results – Knowledge graph ● Search engines only index HTML
  23. 23. Structured Data in HTML ● HTML attributes ● Syntaxes – Microformats (@class, @rel) – RDFa (@property, @typeof, @resource…) – Microdata (@itemscope, @itemtype, @itemprop, …)
  24. 24. Schema.org
  25. 25. Schema.org ● Describe the type of your content (Person, Event, Recipe, Product, Book, Movie, etc.) – 416 types and counting ● Each type has a set of properties – Common properties: name, description, image, url – Specific properties depending on the type (see type page on schema.org) – 544 properties and counting
  26. 26. Credits: Dan Brickley - link.
  27. 27. Schema.org
  28. 28. How does schema.org apply to Drupal? ● Content types
  29. 29. Schema.org module for Drupal ● Map your content types and fields to the schema.org terms http://drupal.org/project/schemaorg
  30. 30. Content types and Fields
  31. 31. Content types and Fields
  32. 32. Content types and Fields
  33. 33. Rich Snippet testing tool ● http://www.google.com/webmasters/tools/richsnippets
  34. 34. Schema.org module ● http://drupal.org/project/schemaorg – UI for mapping content types and fields to schema.org – Documentation on drupal.org – Screencast + examples
  35. 35. RDF architecture in Drupal 7
  36. 36. Architecture ● User driven data model
  37. 37. Content types and Fields
  38. 38. Content types and Fields
  39. 39. Node
  40. 40. Drupal 7 and RDF ● The RDF mapping API allows any vocabulary ● Default mappings on blogs, forums, comments, etc. using FOAF, SIOC, DC, SKOS ● Drupal 7 core outputs these mappings in RDFa ● Mappings can be changed to include other vocabularies like schema.org
  41. 41. Drupal 7 default RDF mappings
  42. 42. Drupal 7 core RDF limitations ● No schema.org out of the box ● No UI for managing the RDF mappings ● Only core fields are supported (text, file, image) – No support for contrib fields: addressfield, fivestar ● No native support for Views or Panels – Display suite 2.0 is OK ● Some contrib modules can help fix the above ● Drupal 8 to fix these many of these issues
  43. 43. Drupal 7 and RDF ● Contributed module for more features ● RDF Extensions ● Serialization formats: RDF/XML, Turtle, N-Triples ● Mapping UI ● RDF Indexer ● Expose Drupal RDF data in a SPARQL Endpoint ● SPARQL Views ● Display remote RDF data in Drupal using SPARQL ● JSON-LD ● Expose Drupal RDF data as JSON-LD (CORS-enabled) ● Features and packaging ● Build distributions / deployment workflow
  44. 44. Drupal and SPARQL
  45. 45. RDF store + SPARQL Endpoint ● Indexing Module: https://drupal.org/project/rdf_indexer Documentation: https://drupal.org/node/2028111
  46. 46. RDF store + SPARQL Endpoint ● Public endpoint available at /sparql
  47. 47. RDF store + SPARQL Endpoint ● Lessons learnt: – Previous implementation didn't scale – http://drupal.org/project/sparql is deprecated (unless you use the SPARQL registry with other modules) – Use https://drupal.org/project/rdf_indexer instead – Documentation: https://drupal.org/node/2028111
  48. 48. RDF store + SPARQL Endpoint ● Functionalities – RDF Indexer is built on top of Search API – Search API offers many of the capabilities needed: ● Track entities that need to be indexed ● Workflows ● Integration with Drush (list, status, clear, index) ● Cron ● OOP – Service class for plugins – Integration with Features (config management)
  49. 49. RDF store + SPARQL Endpoint ● Example: popular tags by comments – http://openspring.net/sparql PREFIX dc: <http://purl.org/dc/terms/> PREFIX sioc: <http://rdfs.org/sioc/ns#> SELECT ?tag sum(?replies) as ?total_replies WHERE { ?post sioc:num_replies ?replies. ?post dc:subject [ rdfs:label ?tag ] . } GROUP BY ?tag ORDER BY DESC(?total_replies)
  50. 50. How to get involved ● Drupal group: – http://groups.drupal.org/semantic-web ● IRC on freenode: #drupal-rdf ● Report bugs or ask support questions on drupal.org
  51. 51. Thanks! ● Stéphane Corlosquet: – scorlosquet@gmail.com – @scorlosquet – http://openspring.net/

×