Upload
scorlosquet
View
1.147
Download
3
Tags:
Embed Size (px)
Citation preview
The Semantic Web and Drupal 7
Stéphane CorlosquetDrupal Summit Latino – Loja, EcuadorMarch, 2013
About the speaker
● Stéphane “scor” Corlosquet● 7 years with Drupal● Software engineer at Acquia● 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
The Semantic Web
The Web today
Many information silos
Image credits: www.pidgintech.com
Many isolated and disparate communities
Image credits: www.pidgintech.com
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?
What do machines see?
Challenge:
How can machines help ussearch all this information?
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
Evolution of the Web
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
Key
● Agree on Standards
● Open Data
Rich Snippets
Why Structured Data in HTML
● Helps machines extractrelevant data from HTML
● Can make use of this datain new ways:
– enhanced search results– Knowledge graph
● Search engines only index HTML
Structured Data in HTML
● HTML attributes
● Syntaxes– Microformats (@class, @rel)– RDFa (@property, @typeof, @resource…)– Microdata (@itemscope, @itemtype, @itemprop, …)
Structured Data in HTML
● Evolution and cross-syntax influence
Schema.org
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
Credits: Dan Brickley - link.
Schema.org
How does schema.org apply to Drupal?
● Content types
How does schema.org apply to Drupal?
● From content types to RDF
Schema.org module for Drupal
● Map your content types and fields to the schema.org terms
http://drupal.org/project/schemaorg
Content types and Fields
Content types and Fields
Content types and Fields
Example: Event
Rich Snippet testing tool
● http://www.google.com/webmasters/tools/richsnippets
Examples
● Events– “force11 events”: http://goo.gl/VVhNM– DrupalCon Munich: http://goo.gl/jgMvw– University of Waterloo: http://goo.gl/Df9hp
● Person– DGD7 – Jacine Luisi: http://t.co/rTK8N9K2– Stéphane Corlosquet: http://goo.gl/9dWdL
Drupal, rNews and RDFa
Open Publish● Free Drupal distribution for building News sites● rNews support in RDFa● Download
Useful modules
● http://drupal.org/project/schemaorg– UI for mapping content types and fields to schema.org– Documentation on drupal.org– Screencast + examples
● http://drupal.org/project/rdfa– Implements the latest RDFa 1.1 (Drupal core is 1.0)– HTML5 and RDFa– Under development
● http://drupal.org/project/microdata– Standalone module– HTML5 Microdata
Schema.org module
Play time!
http://www.google.com/webmasters/tools/richsnippets
http://bit.ly/schema-event
Beyond SEO:How is RDF architected
in Drupal 7
History of RDF in Drupal
● rdf.php (2000, Dries)● FOAF, vCard (2004, walkah)● Relationship (2005, dman)● Semantic Search (2006, hendler)● RDF (2007, Arto)● OpenCalais (febbraro, 2008)● RDF CCK (2008, scor)
http://en.wikipedia.org/wiki/File:Oriente_Station_Lisboa_roof.jpg
Architecture
● User driven data model● Content type => RDF class● Field => RDF property● Node => RDF resource
Content types and Fields
Content types and Fields
Node
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
Drupal 7 default RDF mappings
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● Drupal 8 to fix these many of these issues
Drupal 7 and RDF
● Contributed module for more features● RDF Extensions
● Serialization formats: RDF/XML, Turtle, N-Triples● Mapping UI
● SPARQL● 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
SPARQL Endpoint
● Public endpoint available at /sparql● http://prefix.cc/sioc,rnews.sparql
RDFa 1.1
● Published as W3C Recommendation● RDFa Lite● RDFa 1.1 Full● Leaner markup● http://rdfa.info/play/
RDFa 1.1
● Works with HTML5● No dependency on XHTML● HTML5 doctype● Popular themes have been updated (Omega,
Zen, Adaptive Themes)
Demos
rNews by International Press Telecommunications Council (IPTC)
– Open Publish
PREFIX rnews: <http://iptc.org/std/rNews/2011-10-07#>
SELECT * WHERE { ?s a rnews:Article; rnews:name ?title.}
JSON-LD in Drupal
● Client side as well as server side friendly● Browser Scripting:
– Native javascript format– RDFa API in the DOM
● Data can be fetched from anywhere:– Cross-Origin Resource Sharing (CORS) enabled
● Client can mash data● http://drupal.org/project/jsonld
Demos
● Occupy Directory– http://directory.occupy.net/occupations– JSON-LD: http://directory.occupy.net/node/19652.jsonld
● Federated General Assembly– Drupal distribution for occupy movement– http://wiki.occupy.net/wiki/Federated_General_Assembly
Domeo + Drupal
● Data mash up from independent, but related sources
Domeo + Drupal
● Data mash up from independent, but related sources
Thanks!
● Stéphane Corlosquet: [email protected]– @scorlosquet– http://openspring.net/